最近乙個學習vba的同事問我如何用vba修改檔名,我給他說了一下方法,順便也整理一下常用的幾種操作方法。
這兒說的檔案操作是指作業系統級別的,不是開啟檔案,對檔案內容操作。我們當然可以建立檔案系統物件操作檔案,但是,最簡單的還是使用vba提供的標準的檔案操作功能。最常見的就是檔案或資料夾的增、刪、改。
1、建立和刪除資料夾(增、刪):
建立:mkdir path,例如:mkdir thisworkbook.path & "\temp"
刪除:rmdir path,例如:rmdir thisworkbook.path & "\temp"
2、複製檔案(增):filecopy source, destination,例如:
filecopy thisworkbook.path & "\old" , thisworkbook.path & "\new"
3、刪除檔案(刪):kill pathname,例如:
myfile = thisworkbook.path & "\song.xls"
if dir(myfile) <> "" then kill myfile
4、重新命名檔案或者資料夾(改):name oldpathname as newpathname,例如:
name thisworkbook.path & "\old" as thisworkbook.path & "\new"
5、最後說一下dir這個函式,最常用的是判斷檔案或者資料夾是否存在,例如:
if dir(thisworkbook.path & "\song.xls", vbnormal) <> "" then
其實這個函式功能很強大,可以根據需要,返回指定路徑下所有檔名,對於處理多個檔案特別有用。以前做過乙個文字替換工具,替換資料夾下所有word檔案中的相應文字,就是用這個函式返回所有檔名的。
dir[(pathname[, attributes])]
引數pathname是可選的,用來指定檔名的字串表示式,可能包含目錄或資料夾、以及驅動器。如果沒有找到pathname,則會返回零長度字串 ("")。
引數attributes是可選的,常數或數值表示式,其總和用來指定檔案屬性,如下表所示。如果省略,則會返回不包含屬性的匹配檔案。
常數
值
描述
vbnormal
0(預設) 指定沒有屬性的檔案。
vbreadonly
1指定無屬性的唯讀檔案。
vbhidden
2指定無屬性的隱藏檔案。
vbsystem
4指定無屬性的系統檔案,在macintosh中不可用。
vbvolume
8指定卷標檔案;如果指定了其它屬性,則忽略。vbvolume 在macintosh中不可用。
vbdirectory
16指定無屬性檔案及其路徑和資料夾。
vbalias
64指定的檔名是別名,只在macintosh上可用。
注意 在第一次呼叫dir函式時,必須指定pathname,否則會產生錯誤。下面是個例子:
sub mydir()
dim mydir as string
dim fno as integer
fno = 1
range("a:a").clearcontents
mydir = dir(thisworkbook.path & "\*.xls", vbnormal)
do while mydir <> ""
cells(fno, 1) = mydir
mydir = dir
fno = fno + 1
loop
end sub
mydir過程使用dir函式在**所在工作簿的資料夾中查詢所有的excel檔案,找到後寫入到工作表的a列單元格中。dir函式會返回匹配 pathname引數的第乙個檔名,若想得到其他匹配pathname引數的檔名,需再一次呼叫dir函式,且不要使用引數。如果已沒有合乎條件的檔案,則dir函式會返回乙個零長度字串 ("")。 VBA研究 VBA中編寫延時函式
1 一般延時 乙個應用介面需要限制執行速度,需要在迴圈中加個延時函式,這個延時不需要多麼精確,要求有個幾秒延時,網上用的比較多的就是用timer函式編寫,timer是vba自帶的函式,用起來比較方便,一般程式如下 延時程式 sub delay t as single dim time1 as sin...
VBA讀取檔案
首先我們需要認識幾個相關定義 filesystemobject 檔案系統定義 set fs createobject scripting.filesystemobject set a fs.createtextfile c testfile.txt true a.writeline this is ...
VBA 選擇檔案
option explicit sub 開啟檔案 dim filenameobj as variant dim afile as variant 陣列,提取檔名filename時使用 開啟檔案對話方塊返回的檔名,是乙個全路徑檔名,其值也可能是false,因此型別為variant dim filena...