1.dir函式的有判斷乙個檔案是否存在的功能,也可以使用萬用字元模糊匹配
返回的是該檔案的檔名
sub test()
dim i as integer
for i = 1 to 5
if dir(「d:\data」 & range(「a」 & i) & ".xls*) = 「」 then
range(「b」 & i) = 「無此檔案」
else
range(「b」 & i) = 「有檔案」
2.如果乙個資料夾下有重名檔案,dir函式會如何判斷呢
sub test2()
range(「a1」) = dir(「d:\data\蘇州.xls*」) '第乙個dir返回.xls的檔案
range(「a2」) = dir '第二個dir返回.xlsx檔案
range(「a3」) = dir '由於沒有滿足條件的,第三個dir返回空
'range(「a4」) = dir '第四個dir返回錯誤
3.用dir拿到資料夾下所有的檔名
sub test3()
dim str as string
str = dir(「d:\data*.xls*」)
for i = 1 to 100
range(「a」 & i) = str
if str = "" then '如果str為空了,說明下乙個要報錯了,退出迴圈
exit for
end if
str = dir '把第二個dir的值賦給str
4.開啟乙個路徑下的所有檔案,然後關閉掉
**如下:
sub test4()
dim str as string
dim wb as workbook
str = dir(「d:\data*.xls*」)
for i = 1 to 100
set wb = workbooks.open("d:\data\" & str) '把開啟的檔案用set賦值給wb
' 中間可以用來寫功能
wb.close '關閉開啟的檔案
str = dir
if str = "" then
exit for
end if
next
end sub
5.跨檔案複製資料,把其他檔案的第一張表,複製到指定檔案的第一張表裡
**如下:
sub 檔案合併()
dim str as string
dim wb as workbook
str = dir(「d:\data*.xls*」)
for i = 1 to 100
set wb = workbooks.open(「d:\data」 & str)
wb.sheets(1).copy after:=thisworkbook.sheets(thisworkbook.sheets.count)
'跨檔案複製時,注意這裡的sheets(sheets.count) 要加thisworkbook,不然就是指當前開啟的wb
thisworkbook.sheets(thisworkbook.sheets.count).name = split(wb.name, ".")(0)
'給表取名,這裡用到了split,因為檔名是**.xlsx格式,所以用split按照 "." 來分割
wb.close
str = dir
if str = "" then
exit for
end if
next
end sub
6.跨檔案複製資料,把其他檔案的所有表,複製到指定檔案裡,並且按照原檔案的 「表名+檔名」 來命名
**如下:
sub 檔案合併()
dim str as string
dim wb as workbook
dim sht as worksheet
str = dir(「d:\data*.xls*」)
for i = 1 to 100
set wb = workbooks.open(「d:\data」 & str)
for each sht in wb.sheets
sht.copy after:=thisworkbook.sheets(thisworkbook.sheets.count)
'跨檔案複製時,注意這裡的sheets(sheets.count) 要加thisworkbook,不然就是指當前開啟的wb
thisworkbook.sheets(thisworkbook.sheets.count).name = split(wb.name, ".")(0) & sht.name
'給表取名,這裡用到了split,因為檔名是**.xlsx格式,所以用split按照 "." 來分割
next
wb.close
str = dir
if str = "" then
exit for
end if
next
end sub
vba中dir用法 vba中dir函式使用心得
dir pathname attributes 構建測試環境如下 一 測試在dir函式中使用萬用字元來查詢多個檔案,在vbe中輸入 如下 sub listfiles dim strpath as string,strtmp as string strpath c test strtmp dir st...
VBA中Dir函式的使用
dir 會返回匹配 pathname 的第乙個檔名。若想得到其它匹配 pathname 的檔名,再一次呼叫dir,且不要使用引數。如果已沒有合乎條件的檔案,則 dir 會返回乙個零長度字串 一旦返回值為零長度字串,並要再次呼叫 dir 時,就必須指定 pathname,否則會產生錯誤。檔案數確定時,...
模組之dir函式
dir 函式 你可以使用內建的dir函式來列出模組定義的識別符號。識別符號有函式 類和變數。當你為dir 提供乙個模組名的時候,它返回模組定義的名稱列表。如果不提供引數,它返回當前模組中定義的名稱列表。使用dir函式 例8.4 使用dir函式 root losnau python python py...