Excel VBA 操作文件(夾)神器——FSO對象

2020-12-16 烈酒刀客

FSO對象是什麼鬼?它是用來幹什麼的?

FSO是FileSystemObject(文件系統對象)的簡稱,提供了在windows中操作本地文件和文件夾的功能,此對象不光可用在VBA編程中,VC,VB程式語言中也可以實用此對象。

FSO 對象模型可以實現文件(夾)的創建、改變、移動和刪除等常見操作,也可以獲取文件(夾)的名稱、大小、屬性、創建日期或最近修改日期等信息,還可以檢測是否存在指定的文件夾。通過FSO 對象模型可以獲取當前系統驅動器信息,如驅動器的種類(CD-ROM還是可移動磁碟)、磁碟剩餘空間等等。

怎樣創建FSO對象?

創建FSO對象和創建字典對象類似,有兩種方法:

第一種是直接創建法:

Dim MyFSO as Object

Set MyFSO = CreateObject("Scripting.FileSystemObject")

第二種是引用發:

首先通過VBE編譯器裡的 工具->引用->瀏覽中找到scrrun.dll文件,點擊確定,具體操作如下:

然後在VBA代碼中,用 Dim MyFSO As New FileSystemObject 來創建新的FSO對象。

FSO對象的屬性有哪些?

FSO對象的屬性如下:

小夥伴們要著重了解一下:驅動器屬性Drivers,

返回一個 Drive 集合, 該集合由本地計算機上可用的所有Drive對象組成。

語法格式為:FSO對象.Drives。

應用舉例如下:

備註:Drive對象提供對特定磁碟驅動器或網絡共享的屬性的訪問

Drive對象的屬性如下:

FSO對象的方法有哪些?

FSO對象的方法有27個,具體如下表:

常用的方法說明如下:

BuildPath方法 ,將文件夾路徑和文件夾或文件的名稱組合在一起,並返回與有效路徑分隔符的組合

語法格式:FSO.BuildPath(Path,Name)

Path:必需。組合了_名稱_的現有路徑。路徑可以是絕對路徑或相對路徑,並且不需要指定現有文件夾。

Name:必需。追加到現有_路徑_中的文件夾或文件的名稱。

CopyFile 方法,將一個或多個文件從一個位置複製到另一個位置

語法格式:FSO.CopyFileSourcedestination 、[OverWirte]

Source 必需。字符串文件規範,可以包括通配符來代表要複製的一個或多個文件。

destination 必需。要將 source中的文件複製到的字符串目標。不能使用通配符。

OverWirte可選。布爾值,指示是否覆蓋現有文件。如果為 True,則覆蓋文件,如果為 False,則不覆蓋文件。默認為 True。請注意,如果 destination 具有隻讀屬性集,則不管 overwrite 值是什麼,CopyFile 都將失敗。

CopyFolder方法,將文件夾從一個位置遞歸複製到另一個位置。語法格式與CopyFile方法相同。

CreateFolder 方法,創建文件夾。

語法格式:FSO.CreateFolder(FolderName)

FolderName必需。 標識要創建的文件夾的字符串表達式。

注意的是:如果指定文件夾已存在,則將出錯。

DeleteFile 方法,刪除指定文件。

語法格式:FSO.DeleteFile filespec,[ force ]

Filespec 必需。要刪除的文件的名稱。filespec 可以在最後的路徑組件中包含通配符。

Force 可選。若要刪除帶有隻讀屬性集的文件,則 Boolean 值為 True;否則為 False(默認)。

DeleteFolder方法,刪除指定文件夾及其內容。語法格式與DeleteFile方法相同。

DriveExists 方法,如果指定的驅動器存在,則返回 True;否則,返回 False。

語法格式:FSO.DriveExists(drivespec)

drivespec 必需。 驅動器根目錄的驅動器號或路徑規範。

FileExists方法,FolderExists方法,如果指定文件或文件夾存在,則返回True;否則,返回 False。語法格式與DriveExists方法相同。

GetFile 方法,返回與指定路徑中的文件對應的file 對象。

語法格式:FSO.GetFile(filespec)

FileSpec必需。是特定文件的(絕對或相對)路徑。

GetFolder方法,返回與指定路徑中的文件夾對應的folder對象。語法格式與GetFile方法格式相同。

GetParentFolderName方法,返回一個字符串,其中包含指定路徑中最後一個組件的父文件夾的名稱。

語法格式:FSO.GetParentFolderName(path)

path 必需。要返回其父文件夾名稱的組件的路徑說明。

MoveFile方法,將一個或多個文件從一個位置移動到另一個位置。

語法格式:FSO.MoveFileSource,destination

Source必需。 要移動的一個或多個文件的路徑。 source 參數字符串只能在最後一個路徑組件中包含通配符。

destination 必需。 一個或多個文件要移動到的路徑。 destination參數不能包含通配符。

MoveFolder方法,將一個或多個文件夾從一個位置移動到另一個位置。語法格式與MoveFile方法相同。

此部分內容較多,希望小夥伴們能靜下心來閱讀,此對象對文件以及文件夾的處理非常方便,下一篇文章將會通過一個具體的實例來加深對此FSO對象的理解。

相關焦點

  • FSO對象操作txt文件
    比如這節課要講的txt文本文件。操作txt除了常規VBA文件處理語句open、write等方法,還有一種方法是使用FSO對象來操作。那麼什麼是FSO對象呢?➜FileSystemObject文件系統對象簡稱FSO,和字典一樣,FSO也在Scripting 類型庫 (Scrrun.Dll)中,FSO對象同時包含了Drive、Folder、File、FileSystem Object和TextStream五個對象,在VBA中對FSO對象下的驅動器、文件夾、文件的讀取,寫入、新建、複製、
  • VBA代碼大全010:用vba遍歷文件夾及其子文件夾內的文件
    其中又以循環處理多個文件最為頻繁,一個excel工作簿內的內容循環有些人還可以藉助函數來實現,但是涉及到多個文件的循環處理時,用函數就顯得無力回天,這時候就需要祭出vba大招了。我們經常遇到的是這樣的場景,需要處理的數據位於多個不同的文件,這時候就涉及到對每個文件的逐一讀取,也就是遍歷文件。
  • Excel vba如何創建文本文件
    前景提要在之前我們也是接觸了一些關於FSO的運用,再VBA的世界中,FSO在文件方面的操作還是非常的強大的,日常的工作中,我們很多的數據並不一定存在excel,有時候還會存在文本文件中,就是TXT文件,文本文件的好處就是讀取方便,並且內存不會很大,其實VBA也是可以操作文本文件的,VBA可以創建文本文件,同時可以讀取文件文件
  • 【代碼合集】VBA操作文件夾代碼合集
    本篇文章把操作文件夾的代碼整理了一個合集。給大家收藏備用,希望各取所需。第二參數用來指定文件屬性,常用的幾種屬性如下: vbNormal 0 標準文件 vbReadOnly 1 只讀文件 vbHidden 2 隱藏文件 vbDirectory 16 文件夾這裡我們要判斷某個文件夾是否存在,用的是vbDirectory
  • 巧用python win32com模塊操作excel文件
    Python操作excel文件的第三方庫有很多,小爬就常用openPyxl庫來操作已有的excel文件,它對xlsx、xlsm等格式的支持都較好
  • VBA代碼中CopyFolder方法複製文件夾的通用過程
    b) source是必須的,指明一個或多個被複製文件夾的字符串文件夾說明,可以包括通配符。c) destination是必須的,被複製文件夾和子文件夾的接受端的字符串,不允許有通配符。d) overwrite是可選的,表示已存在的文件夾是否被覆蓋。
  • Excel電子書分享11:Excel VBA文件操作技術大全
    學習Excel技術,關注微信公眾號:excelperfect
  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • 文件太多找不到咋整?用excel製作文件管理器,所有版本皆可使用
    Hello,大家好,之前跟大家分享了使用excel中的power query功能製作一個文件管理器,但是很多分析反應自己的excel版本不夠高,無法使用,今天就跟大家分享如何使用宏表函數製作文件管理器,他也是可以實現文件刷新的,這個的操作也不難,下面就讓我們來看下他是如何設置的一、什麼是宏表函數以及FILES函數
  • 「Python替代Excel Vba」系列(終):vba中調用Python
    數據源文件與顯示文件是獨立分開的。而上述命令行只是把這個 xlam 文件放入你的 excel 加載項目錄中而已。然後,在你的任意目錄中打開命令行。執行以下語句,即會生成一個 py 文件和一個 帶宏的 excel 文件。
  • 「Python替代Excel Vba」系列(二):pandas分組統計與操作Excel
    就是最左邊的那一列數字每個 DataFrame 都會有這樣的 index,不管你怎麼操作他,這個 index 都不會改變。因此我們可以利用 index 定位 excel 的單元格,然後通過 xlwings 標記底色就好了。
  • VBA進階 | 文件操作9:FileSystemObject對象及其方法和屬性(1)
    對象位於File System對象模型的最高層,並且是該層次中惟一可以在外部創建的對象,也就是說它是惟一能使用New關鍵字的對象。FileSystemObject對象有許多用來操作文件系統的方法和屬性。
  • VBA操作OutLook批量發送工資條
    >最近幫朋友做了類似功能,利用VBA操作OutLook批量發送工資條,極大節省了人力。nbsp;= "郵件正文內容" '//正文具體內容        .cc = "vbatoday
  • Excel VBA從新手到高手系列課程
    五、 教學目錄:第一章 新手篇-走進excel vba的世界      1.1 什麼是VBA      1.2 EXCEL中的宏      1.3 認識VISUAL BASIC編輯器        1.4 vba程序結構      1.5 數據類型         1.6
  • VBA基礎概念-對象、屬性、方法
    Sub 對象屬性與方法()'什麼是對象'「對象」是通過VBA控制的東西,可以理解為名詞>'某些屬性同時也是對象,例如區域對象(range)的字體(屬性),字體也可以同時被看看成是對象,有自己的屬性,例如字號,字體,加粗等'方法'對象可以使用不同的方法,是一種命令和操作,可以理解為動詞'在VBE代碼窗口中,按 Ctrl
  • Excel實戰技巧43: 將多個PDF文件中指定頁面合併成一個PDF文件
    實戰01:合併多個PDF文件》和《Python實戰02:分別合併多個相似文件名的PDF文件》中,我們使用Python代碼對PDF文件進行操作來合併PDF文件。其實,使用VBA也能合併PDF文件。 假設在同一文件夾中放置了要合併的PDF文件所在的文件夾、合併後的文件存放的文件夾、以及代碼工作簿,其中要合併的文件存放在名為「PDF文件」的文件夾中,合併後的文件放在名為「合併的文件」的文件夾中,如下圖1所示。
  • EXCEL學習筆記之VBA
     4、在vba中直接使用工作表函數要加前綴Application.WorksheetFunctionDestination:=Range(「G3」)7、判斷文件夾中是否存在指定名稱的文件Dir函數,如果存在則返回該文件名,否則返回空。
  • 你天天用的excel也可以用來畫畫,這個工具3分鐘搞定!
    2、工具的界面一,在這個文件夾裡放入了我選取的圖片,記得用外文取名圖片的名字。3、操作之前關閉所有excel的文件,雙擊文件夾裡的Gen開頭的程序,寫上選取的圖片名字,完成按Enter鍵。4、等一下,會出現如下字樣,告訴你完成了第一步,關掉這個頁面去打開第一次的文件夾,打開新增的一個文件夾test。
  • FSO應用|讀取txt文件
    FSO讀取txt實例上節課我們講了關於FSO對象以及他的textstream文本流的一些基本知識點,今天我們就分享一個用FSO對象操作讀取txt文本文件的實例。下面是一個文本文件,裡面有一些姓名、性別、出生日期等信息,我們需要將裡面種的內容導入到excel文件中。這節課我們講解,在這裡我們採取FSO對象的一些方法來讀取。
  • vba第二十一課
    vba第二十一課工作薄運用實例在一些跨工作薄的數據調取數據或多個工作薄中循環調取數據,那麼我們就要熟練掌握工作薄的代碼的書寫,只要運行程序就可以獲得數據,下面看一段代碼例:Dim wk As Workbook