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

Проверка ввода числа в текстовое поле на форме VBA

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

Загрузка данных из закрытой книги Excel в двумерный массив

Sub ПримерИспользования()
    ' задаём полный путь к обрабатываемому файлу
    ПутьКФайлу$ = ThisWorkbook.Path & "\" & "Contract.XLS"
 
    Application.ScreenUpdating = False    '  отключаем обновление экрана
    arr = LoadArrayFromWorkbook(ПутьКФайлу$, "a2", 30)    ' загружаем данные

    ' выводим результаты в окно Immediate
    Debug.Print "Загружен массив размерами " & UBound(arr, 1) & _
                " строк на " & UBound(arr, 2) & " столбцов"
End Sub

Код функции LoadArrayFromWorkbook:

Вставить только значения и Вставить с транспонированием

Данный код добавляет в контекстное меню ячейки два новых действия:

1. Вставить только значения;
2. Вставить значения с транспонированием.

Макрос для сортировки листов книги Excel по алфавиту

Sub SortSheets()    ' сортировка листов книги по алфавиту

Sub Sort(astrNames() As String)    ' Сортировка массива строк по алфавиту (в порядке возрастания)

Поиск самого нового файла в папке (с просмотром подпапок)

Функция LastFile предназначена для поиска самого свежего файла в заданной папке

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

 

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

Sub ПримерИспользованияФункции_LastFile()
    ' Ищем на рабочем столе все файлы TXT, и выводим имя самого нового файла.
    ' Просматриваются папки с глубиной вложения не более трёх.

    Dim ПутьКПапке$, СамыйПоследнийФайл$
    ' получаем путь к папке РАБОЧИЙ СТОЛ
    ПутьКПапке = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    ' получаем путь к самому новому файлу (проверяется дата последнего сохранения)
    СамыйПоследнийФайл$ = LastFile$(ПутьКПапке, ".txt", 3)
 
    If СамыйПоследнийФайл$ = "" Then MsgBox "Не найдено ни одного файла", vbExclamation: Exit Sub
    MsgBox СамыйПоследнийФайл$, vbInformation, "Самый свежий файл"
End Sub