Въведение в FileSystemObject
Защо използваме VBA? Използваме VBA, за да автоматизираме задачите си. Обикновено в excel работим само с данни, присъстващи в редове и колони, които са под формата на таблици или нещо подобно. Но какво да кажем за файловете и папките, които не са част от excel? Какво става, ако трябва да използваме тези данни от всеки файл как да получим достъп до тях. Тук е полезен FileSystemObject.
FileSystemObject или FSO се използва за достъп до системата от файлове от нашия компютър. Използвайки това, ние можем да имаме достъп до всички файлови папки, които имаме на компютъра, на който работим. FSO е основно API инструмент, който се използва за достъп до други файлове. Сега това не е по подразбиране във VBA, за което ще научим по-нататък в тази статия. Нека първо разберем какво е FSO. По-рано във VBA имахме функция DIR, която беше насочена за достъп до други файлове и папки от компютър. Кодирането за DIR функция беше много сложно за работа. Но във FSO нещата са различни.
Сега има четири типа обекти, до които можем да получим достъп чрез FSO и те са както следва:
- Задвижване: което се използва за достъп до споменато устройство.
- Папка: Използва се за достъп до спомената папка.
- Файл: Използва се за достъп до споменат файл.
- Текстов поток: С този обект можем да четем или пишем текстов файл.
Всеки от изброените по-горе обекти има различни методи за използването им. Например, ако искаме да копираме файл, ще използваме метода CopyFile или изтрием папка, ще използваме метода DeleteFolder и така нататък.
Тъй като обсъждах по-горе FSO не присъства по подразбиране във VBA, има два метода за активиране на FSO във VBA.
- Първият метод е чрез задаване на еталон.
- Вторият метод е да се отнесе към библиотеката от кода.
Докато вторият метод е по-сложен, винаги се препоръчва използването на първия метод, който е много прост. Нека следваме тези основни стъпки.
В VBA отворете раздела Инструменти и след това отидете на Референции,
Ще се появи прозорец на съветника, изберете Microsoft Scripting Runtime, както е показано по-долу, и натиснете OK.
Вече можем да имаме достъп до FSO във VBA. Сега нека използваме това чрез някои примери и да научим за това.
Как да използвате VBA FileSystemObject в Excel?
По-долу са различните примери за използване на VBA FileSystemObject функция в Excel
Можете да изтеглите този шаблон на VBA FileSystemObject Excel тук - VBA FileSystemObject Excel шаблонVBA FileSystemObject - Пример №1
Преди да започнем да използваме FSO във Vba, нека първо да научим как да създаваме инстанции в VBA.
Стъпка 1: В подмодула създайте подпроцедура,
Код:
Sub Newfso () End Sub
Стъпка 2: Декларирайте променлива като FileSystemObject, както е показано по-долу,
Код:
Sub Newfso () Dim A като FileSystemObject End Sub
Стъпка 3: Сега трябва да създадем инстанция, тъй като FSO е обект, използвайки оператора SET, както е показано по-долу,
Код:
Sub Newfso () Dim A като FileSystemObject Set A = New FileSystemObject End Sub
Сега това изявление ще ни позволи да създадем или модифицираме файлове или папки с помощта на FSO.
Стъпка 4: Сега можем да видим функцията IntelliSense след активиране на FSO. Използвайте оператора на точки, както следва,
Код:
Sub Newfso () Dim A като FileSystemObject Set A = New FileSystemObject A. End Sub
Даде ни различни опции с помощта на функцията IntelliSense. Ето как създаваме инстанции, използвайки FSO.
VBA FileSystemObject - Пример №2
След като създадохме екземпляр в Пример 1, нека да продължим да го използваме и да проверим дали файл или папка съществуват или не.
Стъпка 1: След като създадохме нов FileSystemObject, използвайте оператора IF, за да определите дали папка съществува или не, както следва,
Код:
Sub Newfso () Dim A като FileSystemObject Set A = New FileSystemObject Ако A.FolderExists ("C: \ Users \ Public \ Project") След това прекратете Sub
Стъпка 2: Ако папката съществува, ние искаме да покажем папка съществува и ако не искаме тя да се покаже, тази папка не съществува.
Код:
Sub Newfso () Dim A като FileSystemObject Set A = New FileSystemObject Ако A.FolderExists ("C: \ Потребители \ Public \ Project") Тогава MsgBox "Папката съществува" Else MsgBox "Папката не съществува" End if End Sub
Стъпка 3: Сега изпълнете горния код и вижте резултата по следния начин,
Папката наистина съществува в моя работен плот, така че получаваме съобщението, че папката съществува.
VBA FileSystemObject - Пример №3
След като обсъдихме, че FSO има различни обекти като дискове. Нека да разберем колко място имам в моето устройство E.
Стъпка 1: Започнете с друга подпроцедура, както следва,
Код:
Sub Newfso1 () End Sub
Стъпка 2: Сега декларирайте променлива като FileSystemObject и я задайте на нов екземпляр, както следва,
Код:
Sub Newfso1 () Dim A като FileSystemObject Set A = New FileSystemObject End Sub
Стъпка 3: След като използваме свойството Drive, декларираме една променлива като тип Диск и една променлива като двойна, за да съхраняваме данните за пространство, както следва,
Код:
Sub Newfso1 () Dim A като FileSystemObject Set A = New FileSystemObject Dim D като диск, Dspace като двоен край Sub
Стъпка 4: Сега нека създадем нов обект на задвижването, както е показано по-долу,
Код:
Sub Newfso1 () Dim A като FileSystemObject Set A = New FileSystemObject Dim D като диск, Dspace като двоен набор D = A.GetDrive ("C:") край Sub
Това е един от методите на FSO, които използваме за достъп до устройството.
Стъпка 5: Ще използваме друг метод на FSO, за да получим свободното пространство на устройството и да го съхраним в променливата, определена за съхраняване на пространството на устройството,
Код:
Sub Newfso1 () Dim A като FileSystemObject Set A = New FileSystemObject Dim D като диск, Dspace като двоен набор D = A.GetDrive ("C:") Dspace = D.FreeSpace End Sub
Стъпка 6: Сега нека изчислим пространството в GB, както следва,
Код:
Sub Newfso1 () Dim A като FileSystemObject Set A = New FileSystemObject Dim D като диск, Dspace като двоен набор D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) Край Sub
Стъпка 7: Сега покажете стойността, запаметена в пространството на Drive, използвайки функцията msgbox, както следва
Код:
Sub Newfso1 () Dim A като FileSystemObject Set A = New FileSystemObject Dim D като диск, Dspace като двоен набор D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) MsgBox „The Drive“ & D& „има„ & Dspace & „GB free Space“ End Sub
Стъпка 8: Изпълнете горния код, за да разберете по-долу резултата,
VBA FileSystemObject - Пример №4
Сега нека създадем нова папка до определено място с помощта на FSO.
Стъпка 1: Отново нека започнем с друга подпроцедура, както следва,
Код:
Sub Newfso2 () End Sub
Стъпка 2: Нека следваме същите стъпки и създаваме инстанция, както следва,
Код:
Sub Newfso2 () Dim A като FileSystemObject Set A = New FileSystemObject End Sub
Стъпка 3: Сега ще използваме метода Create Folder, за да създадем нова папка до определено място,
Код:
Sub Newfso2 () Dim A като FileSystemObject Set A = New FileSystemObject A.CreateFolder ("C: \ Users \ Public \ Project \ FSOExample") End Sub
Стъпка 4: Изпълнете горния код и вижте резултата на работния плот, както следва,
Успешно създадохме нова папка до посоченото място.
Неща, които трябва да запомните във VBA FileSystemObject
- FSO е инструмент за приложение на API.
- FSO по подразбиране не е наличен в VBA.
- С FSO можем да създаваме, променяме или четем файлове и папки в компютър.
- Можем да използваме и FSO за нашите мрежови устройства.
Препоръчителни статии
Това е ръководство за VBA FileSystemObject. Тук обсъждаме как да използвате VBA FileSystemObject в Excel, заедно с някои практически примери и изтеглящ се шаблон на excel. Можете да разгледате и другите ни предложени статии -
- Пълно ръководство за VBA Workbook
- Непряка функция в Excel
- Функция за броене на VBA
- Excel XOR функция