Макросы VBA Excel — Страница 14

Получение данных из закрытой книги Excel

Функция GetValue предназначена для получения данных из закрытой книги Excel

Использовать такой способ имеет смысл только в том случае, если из большого файла надо получить значения только нескольких ячеек (или одного диапазона ячеек), и при этом точно известно расположение на листе интересующих нас ячеек, и имена листов

Пример использования функции:

Sub ПримерИспользования_GetValue()
    p = "C:\Documents and Settings\Бухгалтерия" ' папка с файлом
    f = "расход.xls" ' имя файла
    s = "доходы" ' название листа
    a = "D145" ' интересующая нас ячейка
    
    ' выполняем загрузку данных из закрытой книги Excel
    ЗначениеЯчейки = GetValue(p, f, s, a)
 
    Debug.Print ЗначениеЯчейки ' выводим результат в окно Immediate
End Sub

Посмотрите также результат использования этой функции внутри цикла
для получения значений ячеек из списка найденных файлов

Автоматическое переключение раскладки клавиатуры для разных диапазонов ячеек

Данный макрос автоматизирует процесс переключения раскладки клавиатуры (смену языков ввода) при работе с таблицами в Excel.

К примеру, вы заносите данные в таблицу, где в некоторые столбцы требуется вводить русские слова (фамилия, имя, и т.п.), а в другие столбцы - английские (марка и модель авто, и т.д.)

Чтобы каждый раз не переключать раскладку вручную - можно воспользоваться WinAPI функцией ActivateKeyboardLayout

Вставьте этот код в модуль листа:

Функция выбора папки с файлами, с сохранением предыдущего значения

Функция GetFolder вызывает диалоговое окно выбора папки в макросах на VBA.

Эту функцию я использую во многих проектах, где необходимо давать пользователю возможность выбора папки.

Чтобы не тревожить пользователя диалоговым окном выбора папки при каждом запуске макроса,
описываемая в статье функция GetFolder сохраняет в реестре путь к ранее выбранной папке,
и при повторном обращении выводит сохранённый путь.

Есть способ принудительно вызвать диалоговое окно выбора папки.

Пример использования функции:

Sub ПримерИспользования_GetFolder()
    folder$ = GetFolder()    ' запрашиваем имя папки
    If folder$ = "" Then Exit Sub    ' выход, если пользователь отказался от выбора папки

    MsgBox "Выбрана папка: " & folder$, vbInformation
End Sub

Выбор другой открытой книги для получения данных

Часто бывает, что надо получить данные из другой, открытой вместе с используемой, книги Excel.

Данная функция помогает получить ссылку на другую, открытую в текущий момент, книгу:

 

Надстройка для транслитерации (кодирования) диапазона ячеек

Результат транслитерации выделенного диапазона ячеек

Надстройка для транслитерации или кодирования (замены символов их кодами) выделенного диапазона ячеек Excel

При запуске надстройки в Excel формируется панель инструментов, при помощи которой можно выполнять следующие действия:

  • Нажатием кнопки RU->EN выполнить транслитерацию выделенного диапазона ячеек
  • Нажатием кнопки EN->RU выполнить транслитерацию выделенного диапазона ячеек
  • В выпадающем списке «Режим работы» можно переключить режим замены символов - второй пункт выпадающего списка «Коды символов» вместо транслита включает режим замены символов их кодами AscW (и обратный режим замены кодо исходным текстом, используя вызов функции ChrW)
  • Нажатием последних двух кнопок (галочка и крестик) можно управлять видимостью листа надстройки, на котором расположена таблица соответствия символов кириллицы и латиницы