excel的cells屬性 Excel vba函數



文章插圖
excel的cells屬性 Excel vba函數

文章插圖
文件系統對象FSO的全稱是File System Object,將一系列操作文件和文件夾的動作通過調用對象本身的屬性直接實現 。其包含了Drive、Folder、File、FileSystemObject和TextStream五個對象,其中Drive用來收集驅動器的信息,如可用磁盤空間或驅動器的類型;Folder用于創建、刪除或移動文件夾,同時可以進行向系統查詢文件夾的路徑等操作;File的基本操作和Folder基本相同,所不同的是Files的操作主要是針對磁盤上的文件進行的 。
對象使用方式:前期綁定:需要在“工程”中“引用”,然后在“引用”對話框中選中“Microsoft Scripting Runtime”前的復選框,然后單擊“確定” 。將一個變量聲明為FSO對象類型:Dim fso As New FileSystemObject 。后期綁定:通過CreateObject方法創建一個FSO 對象:Set fso = CreateObject(“Scripting.FileSystemObject”) 。
1、FSO對象的GetFolder方法,GetFolder方法返回Folder對象 。其語法為:FileSysObj.GetFolder (FolderPath) 。參數FolderPath必需,指定所需文件夾的路徑,String類型,可以為相對路徑或絕對路徑 。GetFolder方法要求FolderPath是一個有效文件夾的路徑,可以先調用FolderExists方法來檢驗FolderPath是否存在 。
2、FolderExists方法,判斷指定的文件夾是否存在,若存在則返回True 。語法:FileSysObj.FolderExists(FolderSpec);參數FolderSpec指文件夾的完整路徑,String類型,不能包含通配符 。語句示例:
Sub IfFolderExists( )Dim fs As ObjectSet fs = CreateObject("Scripting.FileSystemObject")MsgBox fs.FolderExists("D:\Program Files")End SubFSO對象使用示例:一、遍歷某個文件夾下 一層子文件夾
Sub aaa()Set fso = CreateObject("scripting.filesystemobject")pa=range(“d2”)'D2單元格中存有一個文件夾路徑Set ss = fso.getfolder(pa)' ss 為 pa這個文件夾的“文件系統對象” a = 1For Each fd In ss.subfolders'ss的子文件夾集合(pa路徑下的一層子文件夾)Cells(a, “A”) = fd.Name'子文件夾名Cells(a, “B”) = fd'子文件夾全路徑+名稱a = a + 1Next fdEnd Sub代碼作用:子文件夾名稱放在A列,子文件夾全路徑+名稱放在B列 。這里可以看出與Dir區別,Dir不能單獨取子文件夾名 。還有fd.Name 的用法 。
二、遍歷當前文件夾內的文件
Sub aaa()Set fso = CreateObject("scripting.filesystemobject")With Application.FileDialog(msoFileDialogFolderPicker).Title = "請選擇一個文件夾"If .Show = -1 Then'彈出選擇"文件夾"的窗口fd = .SelectedItems(1)ElseMsgBox "未選擇文件,程序中止"Exit SubEnd IfEnd WithSet ss = fso.getfolder(fd)a = 1For Each f In ss.Files'ss的文件集合(fd路徑下的)Cells(a, 1) = f.Name'文件名Cells(a, 2) = f'全路徑+文件名a = a + 1Next fEnd Sub【excel的cells屬性 Excel vba函數】代碼作用:提取文件名稱,并放在A列;文件全路徑+名稱放在B列 。ss.Files 只是fd 路徑下的本層文件夾內的文件 。