Трябва ли да стартирате макрос при стартиране на Excel? Имате две възможности:
1. Създайте подпрограма Workbook_Open () в рамките на „ThisWorkbook“.
2. Поставете подкана Auto_Open () във всеки модул.
Workbook_Open Event
Създайте подзаглавие „Workbook_Open“ в „ThisWorkbook“
123 | Workbook_open ()MsgBox "Този код се изпълнява при стартиране на Excel!"End Sub |
Auto_Open
Използвайки втория метод: Просто създайте подпрограма Auto_Open и поставете код в нея или извикайте друга подпрограма от там. Автоматично вашият код се изпълнява при стартиране на Excel.
123 | Private Sub Auto_Open ()MsgBox "Този код се изпълнява при стартиране на Excel!"End Sub |
Създаване и име на нов работен лист при всяко отваряне на Excel
Следният код работи при отваряне на работна книга. Той автоматично добавя нов лист и го маркира с датата. Той също така проверява дали листът вече не съществува - за да се даде възможност за отваряне повече от веднъж на ден.
Този код използва отвореното събитие на работната книга и трябва да бъде поставен в модула на работната книга под събитието „Отворена работна книга“. Функцията Sheet_Exist трябва да бъде поставена в модул и това проверява дали листът съществува или не:
123456789101112131415 | Private Sub Workbook_Open ()Dim New_Sheet_Name As StringNew_Sheet_Name = Форматиране (Now (), "dd-mm-yy")Ако Sheet_Exists (New_Sheet_Name) = False ТогаваС работна тетрадкаРаботни листове. Добавяне (). Име = Ново_Име_на_листКрай сКрай АкоЗапазванеEnd Sub |
12345678910111213 | Функция Sheet_Exists (WorkSheet_Name As String) Като булеваDim Work_sheet като работен листSheet_Exists = FalseЗа всеки работен лист в тази работна книгаАко Work_sheet.Name = WorkSheet_Name ТогаваSheet_Exists = ВярноКрай АкоСледващияКрайна функция |
Щракнете тук, за да изтеглите .XLSM файла за този урок
Задайте лист по подразбиране, когато работната книга се отвори
Искате ли да се уверите, че лист винаги се показва първо, когато се отвори работна книга? Например, когато отваряте работна книга, лист3 винаги е активният лист. Ето как.
Можете да се обърнете към лист от VBA по името на програмата (т.е. Sheet3) или по името на раздела (т.е. JanData). Най -добре е да използвате името на програмата, защото ако името на раздела се промени, вашият код VBA, който се отнася до името на раздел, вече няма да работи. Ако обаче използвате името на програмата, потребителят може да промени името на раздела няколко пъти и вашият макрос все още работи.
За да сте сигурни, че определен лист винаги е активиран, когато се отвори работна книга, просто поставете лист. Активирайте кода в подпрограмата workbook_open. Това е пример, който активира sheet3, като използва името на програмата всеки път, когато се отвори работна книга.
123 | Private Sub Workbook_Open ()Лист 3. АктивирайтеEnd Sub |
И това го прави, като използва името на раздела:
1234 | Private Sub Workbook_Open ()Таблици („mytabname“). АктивирайтеEnd Sub |
Sidenote: Трябва да запазите и рестартирате Excel, за да работи.
Sidenote: Това работи само ако са разрешени макроси.
Sidenote: Поставете този код в кодовия прозорец за обекта ThisWorkbook във VBE.
Зареждане на формуляр при всяко отваряне на работна книга
Ако искате да заредите формуляр или да стартирате VBA код, когато отваряте работна книга на Excel, поставете кода си в прозореца с кодове на тази работна книга и в подпрограмата Workbook_Open.
От електронната ви таблица:
1. Натиснете ALT и F11, за да отворите VB редактора
2. Щракнете двукратно върху думата ThisWorkbook, за да отворите кодовия прозорец
3. Въведете следния код в прозореца с кодове на тази работна книга
123 | Private Sub Workbook_Open ()UserForm1.ShowEnd Sub |
Sidenote: Заменете Userform1 с името на формуляра
4. Затворете Excel и го отворете отново.