Как да отворите работна книга с име на променлива с Excel VBA

  • Споделя Това
Hugh West

Естествено, може да се наложи да отворим файла от родителския файл на Excel с помощта на VBA в друга директория. Но в същото време имаме различни видове критерии и за това как искаме да отворим работната книга. Ако сте любопитни да знаете как можете да отворите работна книга с променливото име, тогава тази статия може да ви бъде полезна. В тази статия обсъждаме как можете да отворите работна книга с променливо имеизползване на VBA в Excel с подробни обяснения.

Изтегляне на работна тетрадка за практика

Изтеглете тази работна тетрадка по-долу.

Отваряне на работна книга с име на променлива с помощта на VBA.xlsm

Sample.xlsx

4 лесни начина за отваряне на работна книга с име на променлива с помощта на VBA в Excel

За демонстрацията ще използваме следния набор от данни. Имаме информация за продуктите на няколко продукта с техния Id. това е примерен файл, който ще отворим с помощта на кода VBA.

1. Използване на свойството Workbook.Open

Използване на Workbook.Open можем да отваряме файлове, като посочваме директорията или не посочваме местоположението й. Също така можем да направим отворения файл само за четене.

1.1 Отваряне на работна книга, като се споменава пътят на файла

В следващия метод ще използваме Собственост Workbook.Open за отваряне на файла директно от посочената директория за местоположение на файла. Независимо къде се намира файлът, можем да го отворим лесно.

Стъпки

  • Имаме файл, съхранен в папката с документи, който трябва да отворим.
  • Ще използваме името на файла като променлива и след това ще отворим файла с помощта на малък макрос VBA.
  • Точната директория на файла е показана по-долу в прозореца със свойства.

  • Първо, отидете в Разработчик и щракнете върху Visual Basic Ако не разполагате с това, трябва да разрешаване на раздела Разработчик . Или можете също да натиснете Alt+F11' за отваряне на Редактор на Visual Basic .

  • След това ще се появи нов диалогов прозорец, в който щракнете върху Вмъкване на > Модул .

  • След това в Модул въведете следния код:
 Sub Open_with_File_Path() Dim Open_File As String: File_path = "C:\Users\User\OneDrive\Documents\Sample" Dim wrkbk As Workbook Set wrkbk = Workbooks.Open(Filename:=File_path) End Sub 

  • След това затворете Модул прозорец.
  • След това отидете в Вижте tab> Макроси .
  • След това кликнете върху Преглед на макроси .

  • След като щракнете върху Преглед на макроси, изберете макросите, които създадохте току-що. Името им е Open_with_File_Path . След това щракнете върху Изпълнявайте .

  • След това Образец ще бъде отворен.

🔎 Разбивка на кода

 Sub Open_with_File_Path() 

⮚ Първо, даваме име на подпроцедурата, което е Open_with_File_Path .

 Dim Open_File As String: File_path = "C:\Users\User\OneDrive\Documents\Sample" 

⮚ След това поставяме местоположението на файла в File_Path променлива

 Dim wrkbk като работна книга 

⮚ След това декларираме нашата променлива wrkbk , чийто тип е работна книга.

 Set wrkbk = Workbooks.Open(Filename:=File_path) 

⮚ След това отваряме файла, наречен в File_Path променлива на директорията и задайте файла като wrkbk променлива.

 Край на Sub 

⮚ Накрая завършваме подпроцедурата на този код.

Прочетете още: Как да отворите работна книга от път с помощта на Excel VBA (4 примера)

1.2 Отваряне на работна книга, без да споменавате пътя на файла

В следващия метод ще отворим файл от родителската папка, в която е записан основният файл. Файлът може да бъде отворен, без да се споменава място в кода. Този файл просто трябва да се намира в същата папка като родителската.

Стъпки

  • Имаме друг файл, записан в същата директория, в която сега е записан родителският файл на Excel.
  • Името на файла е 1.

  • Първо, отидете в Разработчик и щракнете върху Visual Basic Ако не разполагате с това, трябва да разрешаване на раздела Разработчик . Или Можете също така да натиснете ' Alt+F11 ' за отваряне на Редактор на Visual Basic .

  • След това ще се появи нов диалогов прозорец, в който щракнете върху Вмъкване на > Модул .

  • След това в Модул въведете следния код:
 Sub Open_without_File_Path() Dim wrkbk As Workbook Set wrkbk = Workbooks.Open(Filename:="1.xlsx") End Sub 

  • След това затворете Модул прозорец.
  • След това отидете в Вижте tab> Макроси .
  • След това кликнете върху Преглед на макроси .

  • След като щракнете върху Преглед на макросите, изберете макросите, които създадохте току-що. Името им е Open_without_File_Path . След това щракнете върху Изпълни.

  • След натискане на Изпълнявайте , ще забележите, че файлът с име 1 вече е отворен.
  • Ето как отваряме работната книга с името на променливата с помощта на VBA в Excel.

🔎 Разбивка на кода

 Sub Open_without_File_Path() 

⮚ Първо, даваме име на подпроцедурата, което е Sub Open_without_File_Path()

 Dim wrkbk като работна книга 

⮚ Ние декларираме wrkbk като променлива в тип работна книга

 Set wrkbk = Workbooks.Open(Filename:="1.xlsx") 

⮚ Отваряме файл от родителската директория с име 1.xlsx .

 Край на Sub 

⮚ Накрая завършваме подпроцедурата на този код.

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

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

Стъпки

  • Файлът, който искаме да отворим, е записан в папката с документи.
  • А това е файлът, който искаме да отворим само за четене.

  • Първо, отидете в Разработчик и щракнете върху Visual Basic Ако не разполагате с това, трябва да разрешаване на раздела Разработчик . Или можете също да натиснете Alt+F11 ' за отваряне на редактора на Visual Basic.

  • След това ще се появи нов диалогов прозорец, в който щракнете върху Вмъкване на > Модул .

  • След това в Модул въведете следния код:
 Sub Open_with_File_Read_Only() Dim wrkbk As Workbook Set wrkbk = Workbooks.Open("C:\Users\User\OneDrive\Documents\Sample", ReadOnly:=True) End Sub 
  • След това затворете Модул прозорец.
  • След това отидете в Вижте tab> Макроси .
  • След това кликнете върху Преглед на макроси .

  • След като щракнете върху Преглед на макросите, изберете макросите, които създадохте току-що. Името им е Open_with_File_Read_Only . След това щракнете върху Изпълнявайте .

  • След като щракнете върху Изпълнявайте , ще видим, че файлът вече е отворен само за четене, както е показано в заглавната лента.

🔎 Разбивка на кода

 Sub Open_with_File_Read_Only() 

⮚ Първо, даваме име на подпроцедурата, което е Open_with_File_Read_Only()

 Dim wrkbk като работна книга 

⮚ Ние декларираме wrkbk като променлива в тип работна книга

 Set wrkbk = Workbooks.Open("C:\Users\User\OneDrive\Documents\Sample", ReadOnly:=True) 

⮚ След това файлът ще се отвори от посочената директория и файлът ще бъде зададен само за четене по последния аргумент.

 Край на Sub 

⮚ Накрая завършваме подпроцедурата на този код.

Прочетете още: Как да отворите работната книга като само за четене с Excel VBA

2. Използване на полето за съобщения

Почти подобно на предишния метод, можем да отваряме файлове чрез кода VBA тук в Excel, но в този случай ще включим малка кутия за съобщения тук.

Стъпки

  • Първо, отидете в Разработчик и щракнете върху Visual Basic Ако не разполагате с това, трябва да разрешаване на раздела Разработчик . Или Можете също така да натиснете Alt+F11' за отваряне на Редактор на Visual Basic .

  • След това ще се появи нов диалогов прозорец, в който щракнете върху Вмъкване на > Модул .

  • След това в Модул въведете следния код:
 Sub Open_File_with_Messege_Box() Dim path As String: path = "C:\Users\User\OneDrive\Documents\Sample.xlsx" If Dir(path) "" Then Workbooks.Open (path) MsgBox "Файлът е отворен успешно" Else MsgBox "Отварянето на файла е неуспешно" End If End Sub 

  • След това затворете Модул прозорец.
  • След това отидете в Вижте tab> Макроси .
  • След това кликнете върху Преглед на макроси .

  • След като щракнете върху Преглед на макроси, изберете макросите, които създадохте току-що. Името им е Open_File_with_Messege_Box . След това щракнете върху Изпълнявайте .

  • След това се появи предупредителното поле, което показва, че Файлът е отворен успешно .
  • След това щракнете върху OK .

  • След това ще видим, че файлът вече е отворен.

  • След това се опитваме да променим малко кода.
  • Променяме името на файла на Образец10 , а всъщност няма файл с име Образец10 в папката с документи.

  • Тогава ние Изпълнявайте кода отново и се появява поле за съобщение, в което се казва Отварянето на файла е неуспешно .
  • Кликнете върху ОК след това.

🔎 Разбивка на кода

 Sub Open_File_with_Messege_Box() 

⮚ Първо, даваме име на подпроцедурата, което е Open_with_File_Read_Only()

 Dim path As String: 

⮚ Ние декларираме wrkbk като променлива в типа на работната книга

 Ако Dir(път) "" Тогава Workbooks.Open (път) 
 MsgBox "Файлът е отворен успешно" В противен случай 

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

 MsgBox "Отварянето на файла е неуспешно" 

⮚ Ако няма файл с име Образец в директорията, това съобщение ще бъде доставено.

 End If 

⮚ Накрая завършваме подпроцедурата на този код.

 Край на Sub 

⮚ Накрая завършваме подпроцедурата на този код.

Прочетете още: Как да отворите работна книга и да стартирате макрос с помощта на VBA (4 примера)

3. Използване на диалогов прозорец за отваряне на файл

Извличането на директорията с местоположението на файла и импортирането им всеки път в кода на VBA е доста тромаво. За да разрешим проблема, ще покажем как можете да използвате диалогов прозорец, за да изберете файл от всяка директория.

Стъпки

  • Сега ще отворим файла, като използваме диалоговия прозорец за проучване на файлове.
  • Първо, отидете в Разработчик и щракнете върху Visual Basic Ако не разполагате с това, трябва да разрешаване на раздела Разработчик . Или Можете също така да натиснете ' Alt+F11' за отваряне на Редактор на Visual Basic .

  • След това ще се появи нов диалогов прозорец, в който щракнете върху Вмъкване на > Модул .

  • След това в Модул въведете следния код:
 Sub Open_File_with_Dialog_Box() Dim Dbox As FileDialog Dim File_Path As String Dim wrkbk As Workbook Set Dbox = Application.FileDialog(msoFileDialogFilePicker) Dbox.Title = "Choose and Open " & FileType Dbox.Filters.Clear Dbox.Show If Dbox.SelectedItems.Count = 1 Then File_Path = Dbox.SelectedItems(1) End If Set wrkbk = Workbooks.Open(Filename:=File_Path) End Sub 
  • След това затворете Модул прозорец.
  • След това отидете в Вижте tab> Макроси .
  • След това кликнете върху Преглед на макроси .

  • След като щракнете върху Преглед на макроси, изберете макросите, които създадохте току-що. Името им е Open_File_with_Dialog_Box . След това щракнете върху Изпълнявайте .

  • След това се отваря нов прозорец. В диалоговия прозорец File explorer и изберете Образец и щракнете върху OK .

  • След това файл с име Образец отворени.
  • Ето как отваряме работната книга с името на променливата с помощта на VBA в Excel.

🔎 Разбивка на кода

 Sub Open_File_with_Dialog_Box() 

⮚ Първо, даваме име на подпроцедурата, което е Sub Open_File_with_Dialog_Box()

 Dim Dbox като FileDialog 

⮚ Ние декларираме Dbox като променлива в FileDialog тип

 Dim File_Path като низ 

⮚ Ние декларираме File_Path като променлива в File_Path Като Редица тип

 Set Dbox = Application.FileDialog(msoFileDialogFilePicker) Dbox.Title = "Изберете и отворете " & FileType 

⮚ От първия ред ще има диалогов прозорец. Следващият ред обозначава името на диалоговия прозорец и типа на файла.

Dbox.Title ще зададе заглавието на диалоговия прозорец. и Тип на файла задайте типа на файла.

 Dbox.Filters.Clear 

Dbox.Filters.Clear ще изчисти всеки предишен филтър, приложен в полето diaog

 Dbox.Show 

Dbox.Show ще накара диалоговия прозорец да се появи във файла.

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

 Край на Sub 

⮚ Накрая завършваме подпроцедурата на този код.

Прочетете още: Как да отворите папка и да изберете файл, като използвате Excel VBA (4 примера)

4. Използване на Workbook.Add Property

За разлика от предишните методи ще създадем нов файл на Excel в предварително определена директория и след това ще го отворим с помощта на Работна тетрадка. Добави собственост.

Стъпки

  • Първо, отидете в Разработчик и щракнете върху Visual Basic Ако не разполагате с това, трябва да разрешаване на раздела Разработчик . Или Можете също така да натиснете ' Alt+F11' за отваряне на Редактор на Visual Basic .

  • След това ще се появи нов диалогов прозорец, в който щракнете върху Вмъкване на > Модул .

След това в Модул въведете следния код:

 Sub Open_File_with_Add_Property() Dim File_Path As String: File_Path = "C:\Users\User\OneDrive\Documents\Sample.xlsx" Dim wb As Workbook Set wb = Workbooks.Add(File_Path) End Sub 
  • След това затворете Модул прозорец.
  • След това отидете в Вижте tab> Макроси .
  • След това кликнете върху Преглед на макроси .

  • След като щракнете върху Преглед на макроси, изберете макросите, които създадохте току-що. Името им е Open_File_with_Add_Property . След това щракнете върху Изпълнявайте .

  • След като щракнете върху Работете, ще забележите, че вече е създаден и отворен нов файл.

🔎 Разбивка на кода

⮚ Първо, даваме име на подпроцедурата, което е Sub Open_File_with_Add_Property()

⮚ След това обявяваме File_Path променлива като Редица тип.

 Dim File_Path As String: File_Path = "C:\Users\User\OneDrive\Documents\Sample.xlsx" 

⮚ И задайте File_Path към местоположението на файла.

 Dim wb като работна книга 

⮚ Ние декларираме wb като променлива в Работна тетрадка тип.

 Set wb = Workbooks.Add(File_Path) 

⮚ След това работната книга се добавя от директорията, съхранена в File_Path местоположение, като използвате Workbook.Add собственост.

 Край на Sub 

⮚ Накрая завършваме подпроцедурата на този код.

Прочетете още: [Поправено!] Неуспешно отваряне на метода на обектните работни книги (4 решения)

Заключение

За да обобщим, на въпроса как можем да отваряме работни книги с имена на променливи с помощта на VBA, тук се дава отговор с 4 различни примера. Макрос на VBA метод изисква предварително Свързани с VBA знания, за да разберете от нулата.

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

Чувствайте се свободни да задавате всякакви въпроси или обратна връзка чрез раздела за коментари. Всяко предложение за подобряване на Exceldemy общността ще бъде високо оценена.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.