Работна книга за отваряне / затваряне на VBA

В този урок ще научите как да използвате VBA за отваряне и затваряне на работна книга на Excel по няколко начина.

VBA ви позволява да отваряте или затваряте файлове, използвайки стандартните методи .Отворете и .Близо.

Ако искате да научите как да проверите дали файл съществува, преди да опитате да го отворите, можете да кликнете върху тази връзка: VBA File Exists

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

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

Ако знаете кой файл искате да отворите, можете да посочите пълното му име на пътя във функцията. Ето кода:

1 Workbooks.Open "C: \ VBA Folder \ Примерен файл 1.xlsx"

Този ред на кода отваря файл „Примерен файл 1“ от „Папка VBA“.

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

Когато отворите работна книга, тя автоматично се превръща в ActiveWorkbook. Можете да се позовете на новоотворената работна книга така:

1 ActiveWorkbook.Save

Когато посочвате лист или диапазон и пропускате името на работната книга, VBA ще приеме, че имате предвид ActiveWorkbook:

1 Листове ("Лист1"). Име = "Въвеждане"

Отворете работната книга и присвойте на променлива

Можете също така да отворите работна книга и да я присвоите директно на променлива на обект. Тази процедура ще отвори работна книга за wb променлива и след това запишете работната книга.

123456 Sub OpenWorkbookToVariable ()Dim wb Като работна книгаЗадайте wb = Workbooks.Open ("C: \ VBA Folder \ Примерен файл 1.xlsx")wb.SaveEnd Sub

Присвояването на работни книги на променливи, когато се отварят, е най -добрият начин да следите работните си книги

Работна книга Отворете диалогов прозорец за файлове

Можете също да задействате диалоговия прозорец „Отворени файлове“ на работната книга. Това позволява на потребителя да отиде до файл и да го отвори:

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

Както можете да видите на изображение 1, с този подход потребителите могат да избират кой файл да отворят. Диалоговият прозорец Open File може да бъде силно персонализиран. Можете да зададете по подразбиране определена папка, да изберете кои типове файлове да се виждат (например… само xlsx) и др. Прочетете нашия урок в диалоговия прозорец Open File за подробни примери.

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

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

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

Отворете нова работна книга за променлива

Тази процедура ще отвори нова работна книга, като я присвои на променлива wb:

1234 Sub OpenNewWorkbook ()Dim wb Като работна книгаЗадайте wb = Работни книгиEnd Sub

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

Когато използвате Workbooks.Open, може да забележите, че при отварянето на работната книга има много опции:

Името на файла е задължително. Всички други аргументи са незадължителни - и вероятно няма да е необходимо да знаете повечето от другите аргументи. Ето двете най -често срещани:

Отворете работна книга само за четене

Когато работната книга е отворена само за четене, не можете да запазвате оригиналния файл. Това предотвратява редактирането на файла от потребителя.

1 Workbooks.Open "C: \ VBA Folder \ Примерен файл 1.xlsx",, Вярно

Отворете защитена с парола работна книга

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

1 Workbooks.Open "C: \ VBA Folder \ Примерен файл 1.xlsx",,, "password"

Отворете бележки за синтаксис на работна книга

Забележете, че в горното изображение включихме скоби „(“, за да покажем синтаксиса. Ако използвате скоби, когато работите с работни книги. Отворете, трябва да присвоите работната книга на променлива:

1234 Sub OpenWB ()Dim wb Като работна книгаЗадайте wb = Workbooks.Open ("C: \ VBA Folder \ Примерен файл 1.xlsx", True, True)End Sub

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

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

Подобно на отварянето на работна книга, има няколко начина за затваряне на файл. Ако знаете кой файл искате да затворите, можете да използвате следния код:

1 Workbooks.Close ("C: \ VBA Folder \ Примерен файл 1.xlsx")

Този ред код затваря файла „Примерен файл 1“, ако е отворен. Ако не, той ще върне грешка, така че трябва да се погрижите за обработката на грешки.

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

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

1 ActiveWorkbook.Close

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

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

1 Работни тетрадки. Затворете

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

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

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

Заменете 1 с 2, за да затворите втората отворена / създадена работна книга и т.н.

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

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

1 ActiveWorkbook.Close savechanges: = False

Запазване и затваряне без подкана

По същия начин това ще запази и затвори работна книга, без да показва подканата за запазване:

1 ActiveWorkbook.Close savechanges: = True

Забележка: Има няколко други начина да посочите дали да запазите или не запазите работна книга, както и дали да показвате подкани или не. Това е обсъдено по -подробно тук.

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

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

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

12345678 Sub OpenMultipleNewWorkbooks ()Dim arrWb (3) Като работна книгаDim i As IntegerЗа i = 1 до 3Задайте arrWb (i) = Работни книгиСледва iEnd Sub

Отворете всички работни книги на Excel в папка

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

12345678910111213141516 Sub OpenMultipleWorkbooksInFolder ()Dim wb Като работна книгаЗатъмнете dlgFD като FileDialogDim strFolder As StringDim strFileName As StringЗадайте dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Ако dlgFD.Show = -1 ТогаваstrFolder = dlgFD.SelectedItems (1) & Application.PathSeparatorstrFileName = Dir (strFolder & "*.xls*")Do While strFileName ""Задайте wb = Работни книги. Отворете (strFolder & strFileName)strFileName = РежЦикълКрай АкоEnd Sub

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

Тази процедура ще тества дали работна книга е отворена:

1234567891011 Sub TestByWorkbookName ()Dim wb Като работна книгаЗа всяка wb в работни книгиАко wb.Name = "Нов работен лист на Microsoft Excel.xls" ТогаваMsgBox "Намерих го"Излезте от кода за повикване на Sub тук, просто ще излезем засегаКрай АкоСледващияEnd Sub

Workbook_Open Event

VBA Събитията са „тригери“, които казват на VBA да изпълнява определен код. Можете да настроите събития от работна книга за отваряне, затваряне, преди запазване, след запазване и др.

Прочетете нашия урок Workbook_Open Event, за да научите повече за автоматично изпълняваните макроси при отваряне на работна книга.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave