Понякога може да искате или трябва да създадете работна книга на Excel по автоматизиран начин. Например, може да се наложи да копирате данни от таблица и да ги поставите в новосъздадена работна книга. Следният макрос копира диапазон от клетки от активния лист и поставя данните в нова работна книга.
Как работи макросът
Както ще видите, когато прочетете редовете на кода, този макрос е относително интуитивен:
Подмакрос1()
„Стъпка 1 Копирайте данните
Листове("Пример 1").Обхват("B4:C15").Копиране
„Стъпка 2 Създайте нова работна книга
Работни тетрадки.Добавяне
„Стъпка 3 Поставете данните
ActiveSheet.Paste Destination:=Обхват("A1")
„Стъпка 4 Изключете сигналите за приложения
Application.DisplayAlerts = False
„Стъпка 5 Запазете новосъздадената работна книга
ActiveWorkbook.SaveAs _
Име на файл:="C:TempMyNewBook.xlsx"
„Стъпка 6 Включете отново сигналите за приложения
Application.DisplayAlerts = Вярно
Край под
В стъпка 1 просто копирате данните, които варират от клетки B4 до C15. Имайте предвид, че посочвате както листа, така и диапазона по име. Този подход е най-добрата практика при работа с множество отворени работни книги.
В стъпка 2 използвате метода Add на обекта Workbook, за да създадете работна книга. Празната работна книга е еквивалентна на ръчно избиране на Файл→Нов→Празен документ в лентата на Excel.
В стъпка 3 използвате метода Paste, за да изпратите копираните данни в клетка A1 на новата работна книга.
Обърнете внимание на факта, че кодът се отнася до обекта ActiveSheet. Когато добавите работна книга, новата работна книга веднага придобива фокус, превръщайки се в активна работна книга. (Excel прави същото, когато добавяте работна книга ръчно.)
В стъпка 4 от кода задавате метода DisplayAlerts на False, като ефективно изключвате предупрежденията на Excel. Правите това, защото в следващата стъпка от кода запазвате новосъздадената работна книга. Можете да стартирате този макрос няколко пъти, като в този случай Excel се опитва да запише файла няколко пъти.
Какво се случва, когато се опитате да запазите работна книга няколко пъти? Точно така – Excel ви предупреждава, че вече има файл с това име и след това пита дали искате да презапишете съществуващия по-рано файл. Тъй като целта ви е да автоматизирате създаването на работната книга, искате да потиснете това предупреждение.
В стъпка 5 запазвате файла с помощта на метода SaveAs. Имайте предвид, че въвеждате пълния път на мястото за запис, включително крайното име на файл.
Тъй като сте изключили промените в приложението в Стъпка 4, трябва да ги включите отново (вижте Стъпка 6). Ако не го направите, Excel продължава да потиска всички предупреждения по време на текущата сесия.
Как да използвате макроса
За да приложите този макрос, можете да го копирате и поставите в стандартен модул:
Активирайте редактора на Visual Basic, като натиснете Alt+F11.
Щракнете с десния бутон върху името на проекта/работната книга в прозореца на проекта.
Изберете Вмъкване→Модул.
Въведете или поставете кода в новосъздадения модул.
Вероятно ще трябва да промените името на листа, адреса на диапазона и мястото за запис.