Готовые макросы в VBA Excel (Миронов.) (z-lib.org). Запуск макроса с поиском ячейки 6 Запуск макроса при открытии книги 6
Скачать 1.47 Mb.
|
Быстрое изменение заголовка окнаSub NewTitle() Application.Caption = "Какая хорошая погода" End Sub Быстрое изменение заголовка окна_2Sub NewTitle() Application.Caption = "Какая хорошая погода" ActiveWindow.Caption = "А завтра будет дождь" End Sub Изменение заголовка окна (со скрытием названия файла)Sub NewTitle() Application.Caption = "Какая хорошая погода" ActiveWindow.Caption = "" End Sub Возврат к первоначальному заголовкуSub ReturnTitle() ' Возвращение заголовка приложения (то есть Excel) Application.Caption = Empty ' Указание правильного названия открытого файла (книги) ActiveWindow.Caption = ThisWorkbook.Name End Sub Что открыто в данный моментSub WorkBooksList() Dim book As Object ' Вывод имени каждой рабочей книги For Each book In Workbooks MsgBox (book.Name) Next End Sub Работа с текстовыми файламиОткрываются файлы командой Open, а закрываются - командой Close. Sub Test() Open "file.txt" For Input As #1 Close #1 End Sub Запись и чтение текстового файлаSub Test() Open "file.txt" For Output As #1 Print #1, "Этот текст будет записан в файл" Close #1 Open "file.txt" For Input As #1 Dim s As String Input #1, s MsgBox s Close #1 End Sub Для записи используется оператор Print, а для чтения - Input. У этих операторов есть свои особенности. Print #1, "Hello , File" Оператор Input #1 прочитает только Hello и все. Запятая воспринимается как разделитеть. Чтобы прочитать строку целиком, используется оператор Line Input. Sub Test() Open "file.txt" For Output As #1 Print #1, "Hello , File" Close #1 Open "file.txt" For Input As #1 Dim s As String Line Input #1, s MsgBox s Close #1 End Sub Обработка нескольких текстовых файловSub ImportTextFiles() Dim fsSearch As FileSearch Dim strFileName As String Dim strPath As String Dim i As Integer ' Задание пути и возможного имени файла strFileName = ThisWorkbook.path & "\" strPath = "text??.txt" ' Создание объекта FileSearch Set fsSearch = Application.FileSearch ' Настройка объекта для поиска With fsSearch ' Маска для поиска .LookIn = strFileName ' Путь для поиска .FileName = strPath ' Поиск всех файлов, удовлетворяющих маске .Execute ' Выход, если файлы не существуют If .FoundFiles.Count = 0 Then MsgBox "Файлы не обнаружены" Exit Sub End If End With ' Обработка найденных файлов For i = 1 To fsSearch.FoundFiles.Count Call ImportTextFile(fsSearch.FoundFiles(i)) Next i End Sub Sub ImportTextFile(FileName As String) ' Импорт файла Workbooks.OpenText FileName:=FileName, _ Origin:=xlWindows, _ StartRow:=1, _ DataType:=xlFixedWidth, _ FieldInfo:= _ Array(Array(0, 1), Array(3, 1), Array(12, 1)) ' Ввод формул суммирования Range("D1").Value = "A" Range("D2").Value = "B" Range("D3").Value = "C" Range("E1:E3").Formula = "=COUNTIF(B:B,D1)" Range("F1:F3").Formula = "=SUMIF(B:B,D1,C:C)" End Sub Определение конца строки текстового файлаSub Test() Open "file.txt" For Output As #1 Print #1, "Hello , File" Close #1 Open "file.txt" For Input As #1 Dim s As String While Not EOF(1) Input #1, s MsgBox s Wend Close #1 End Sub Копирование из текстового файла в эксельDim TextLine i = 1 Open "C:\MyFile.txt" For Input As #1 Do While Not EOF(1) Line Input #1, TextLine ThisWorkbook.Worksheets("Лист1").Cells(i, 1).Value = TextLine i = i + 1 Loop Close #1 |