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

Перенос двумерного массива на лист Excel

Функция Array2worksheet позволяет быстро сформировать лист на основании данных из двумерного массива

Sub ПримерИспользованияФункции_Array2worksheet()
    ' формируем двумерный массив, и заполняем его данными
    ReDim MyArr(1 To 20, 1 To 3)
    For i = 1 To 20: For j = 1 To 3: MyArr(i, j) = "Ячейка " & i & " * " & j: Next j: Next i
 
    ' создаём новую книгу, а в ней - лист для массива
    Dim sh As Worksheet: Set sh = Workbooks.Add(-4167).Worksheets(1): sh.Name = "Массив"
    ' заносим данные из массива MyArr на лист sh
    Array2worksheet sh, MyArr, Array("Столбец 1", "Столбец 2", "Столбец 3")
End Sub

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

Функция UniqueValues возвращает коллекцию, содержащую уникальные непустые значения из диапазона ячеек (или массива)

Получение данных из закрытой книги 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

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

Загрузка картинок из интернета по ссылкам, и сохранение их в отдельные папки

Вид исходный таблицы со ссылками на картинки в интернете

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

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

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

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

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

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

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

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

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