VBA之dir函式綜合使用

2021-10-04 13:38:14 字數 2909 閱讀 3422

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...