VBA Работа с работни книги (обектът на работната книга)

Това ръководство ще ви запознае с работата с Обект на работна книга във VBA.

Обектът на работната книга

Първо, за да взаимодействате с работни книги във VBA, трябва да разберете Обект на работна книга.

С обекта на работната книга можете да се позовавате на работните книги по техните имена по следния начин:

1 Работни книги ("Book2.xlsm"). Активирайте

Този код обаче ще работи само ако работната книга е отворена. Ако работната книга е затворена, ще трябва да предоставите пълния път на работната книга:

1 Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm")

Вместо да въвеждате пълния път, ако желаната от вас работна книга е в същата директория с работната книга, където се съхранява вашият код, можете да използвате този код на ред, за да отворите работната книга:

1 Workbooks.Open (ThisWorkbook.Path & "\ book2.xlsm")

Това използва обекта ThisWorkbook, който ще обсъдим в следващия раздел.

Индексен номер на работната книга

И накрая, можете да посочите работните книги по техния „номер на индекса“. Индексният номер на работна книга съответства на реда на отваряне на работната книга (технически нейната позиция на работната книга в колекцията на работните книги).

1 Работни тетрадки (1). Активирайте

Това е полезно, ако искате да направите нещо като затваряне на първата (или последната) отворена работна книга.

Активирайте Работна книга, ActiveWorkbook и ThisWorkbook

Ако има работна книга НЕАКТИВЕН, можете да получите достъп до обектите на работната книга по следния начин:

1 Работни книги ("Book2.xlsm"). Листове ("Sheet1"). Диапазон ("A1"). Стойност = 1

Ако обаче работната книга е активна, можете да пропуснете обекта на работната книга:

1 Листове ("Sheet1"). Диапазон ("A1"). Value = 1

И ако искате да взаимодействате с активния лист на работната книга, можете също да пропуснете обекта на листа:

1 Диапазон ("A1"). Стойност = 1

Активирайте работната книга

За да активирате работна книга, използвайте Активиране на метода.

1 Работни книги ("Book2.xlsm"). Активирайте

Сега можете да взаимодействате с обекта на Book2, без да посочвате изрично името на работната книга.

ActiveWorkbook

The ActiveWorkbook обект винаги се отнасят до активната работна книга. Това е полезно, ако искате да присвоите ActiveWorkbook на променлива, която да използвате по -късно.

12 Dim wb Като работна книгаЗадайте wb = ActiveWorkbook

Тази работна книга

The Тази работна книга обект винаги се отнася до работната книга, където се съхранява работещият код. За да активирате ThisWorkbook, използвайте този ред код:

1 ThisWorkbook.Activate

Отворете работна книга

За да отворите работна книга, използвайте Отворен метод:

1 Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm")

Новооткритата работна книга винаги ще се превърне в ActiveWorkbook, което ви позволява лесно да взаимодействате с него.

1 ActiveWorkbook.Save

Отвореният метод има няколко други аргумента, които ви позволяват да отваряте само за четене, да отваряте защитена с парола работна книга и др. Той е разгледан тук в нашата статия за отваряне / затваряне на работни книги.

Отваряне и присвояване на променлива

Можете също така да отворите работна книга и да я присвоите на променлива едновременно:

12 Dim wb Като работна книгаЗадайте wb = Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm")

Отворете диалоговия прозорец за файлове

Можете също да задействате диалоговия прозорец Open File по следния начин:

12345678 Sub OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Работни книги. Отваряне (strFile)End Sub

Създаване на нова (добавяне) работна книга

Този ред код ще създаде нова работна книга:

1 Работни книги

Новата работна книга сега се превръща в ActiveWorkbook, което ви позволява да взаимодействате с него (напр. запазете новата работна книга).

Добавяне на нова работна книга към променлива

Можете също да добавите нова работна книга директно към променлива:

12 Dim wb Като работна книгаЗадайте wb = Работни книги

Затворете работната книга

Затваряне и запазване

За да затворите работна книга със записване, използвайте Метод за затваряне с Запазите промените зададено на TRUE:

1 ActiveWorkbook.Close SaveChanges: = Вярно

Затваряне без запис

За да затворите без запазване, задайте Запазите промените равно на FALSE:

1 ActiveWorkbook.Close SaveChanges: = False

Работна книга Запазване като

The Метод SaveAs се използва за запазване на работна книга като.

За да запазите работна книга с ново име, в същата директория, можете да използвате това:

1 ActiveWorkbook.Save Като „нов“

където „new“ е новото име на файла.

За да запишете работна книга в нова директория с конкретно разширение на файла, просто посочете новата директория и името на файла:

1 ActiveWorkbook.SaveAs "C: \ Users \ StevePC2 \ Downloads \ new.xlsm"

Други примери за VBA на работната книга

Име на работната книга

За да получите името на работна книга:

1 MsgBox ActiveWorkbook.Name

Защитете работната тетрадка

За да защитите структурата на работната книга от редактиране, можете да използвате Метод за защита (парола по избор):

1 Работни книги ("book1.xlsm"). Защитете "парола"

За да премахнете защитата на работна книга, използвайте Метод UnProtect:

1 Работни книги ("book1.xlsm"). Премахнете защитата на "паролата"

Прегледайте всички отворени работни книги

За да преминете през всички отворени работни книги:

123456789 Sub LoopThroughWBs ()Dim wb Като работна книгаЗа всяка wb в работни книгиMsgBox wb.NameСледваща wbEnd Sub

Работна книга Активирайте събитие

Можете да стартирате някакъв код всеки път, когато се отвори конкретна работна книга с Работна книга Отворено събитие.

Поставете тази процедура в модула ThisWorkbook на работната си книга:

123 Private Sub Workbook_Open ()Листове („лист1“). АктивирайтеEnd Sub

Тази процедура ще се активира Лист 1 всеки път, когато работната книга се отваря.

wave wave wave wave wave