Ⅰ VBA語言如何打開指定文件名的文件
在D盤新建一個名為文件的文件夾,在裡面創建幾個Excel文件。
Ⅱ vba讀取文件夾中的文件名
提取當前文件夾下的文件名稱並放在A列
Sub 按鈕1_Click()
Application.ScreenUpdating = False
Set fso = CreateObject("scripting.filesystemobject")
Set ff = fso.getfolder(ThisWorkbook.Path) 'ThisWorkbook.Path是當前代碼文件所在路徑,路徑名可以根據需求修改
ActiveSheet.UsedRange.ClearContents
a = 1
For Each f In ff.Files
Rem 如果不需要提取本代碼文件名,可以增加if語句 if f.name<> thisworkbook.name then.....
Rem 如果值需要提取某類文件,需要對f.name的擴展名進行判斷
Rem 個人感覺split取 擴展名:split(f.name,".")(ubound(split(f.name,"."))),然後再判斷,避免文件名還有其他「.」
Cells(a, 1) = f.Name '相對路徑名
Cells(a, 2) = f '全路徑名
a = a + 1
Next f
Application.ScreenUpdating = True
End Sub
Ⅲ excel,怎麼用vba寫段關於查找指定文件夾內的文件名,並將其提取值至表內
Alt+F11插入下面的代碼到模塊
'查找某個文件是否存在
Function IsExistFile(ByRef strDir As String, ByRef fileName As String)
Dim s As String
If (Right(strDir, 1) <> "\") Then
strDir = strDir & "\"
End If
s = dir(strDir & fileName, vbArchive + vbDirectory + vbHidden + vbNormal + vbReadOnly + vbSystem)
If (s <> "") Then
IsExistFile = fileName
Else
IsExistFile = "無"
End If
End Function
參數說明strDir為文件夾路徑,fileName為文件名
使用示例:某個單元格輸入=IsExistFile("E:\doc",B2) 即可,若不存在返回無,存在返回B2中的文件名稱。路徑和文件名可以直接用字元串或引用某個單元格內容。
Ⅳ 用EXCEL VBA獲取指定目錄下的文件名(包括文件夾名)
1、首先利用快捷鍵「Windows鍵+R」打開「運行」窗口
Ⅳ vba讀取指定文件夾的所有文件夾
「當前路徑」指的是什麼的當前路徑?
在Office應用程序(如Word或Excel等)中當前打開的文檔所在的路徑?還是Office這個應用程序所在的路徑。
如果傳入一個「」,好象默認是返回「我的文檔」中的第一個文檔。所以那個.classPath可能就是你機器上「我的文檔」中的第一個文件的文件名。
下面這個函數用MsgBox顯示給定目錄下的所有文件名:
Function EnumAllFiles(strPathName As String)
Dim strFileName As String
strFileName = Dir(strPathName & "*.*")
While strFileName <> ""
If MsgBox("文件名是 " & strFileName & ". 是否繼續枚舉?", vbDefaultButton1 Or vbYesNoCancel Or vbQuestion) <> vbYes Then Exit Function
strFileName = Dir
Wend
End Function
Ⅵ excel怎樣用vba自動提取文件夾內的文件名
excel中用vba實現自動提取文件夾內的文件名的方法如下:
1、新建一個vba宏腳本
Ⅶ VBA中怎麼讀取文件的屬性,如修改時間,類型,大小之類的
GetAttr函數 返迴文件屬性的
返回一個 Integer,此為一個文件、目錄、或文件夾的屬性。
語法
GetAttr(pathname)
必要的 pathname 參數是用來指定一個文件名的字元串表達式。pathname 可以包含目錄或文件夾、以及驅動器。
返回值
由 GetAttr 返回的值,是下面這些屬性值的總和:
常數 值 描述
vbNormal 0 常規
vbReadOnly 1 只讀
vbHidden 2 隱藏
vbSystem 4 系統文件
vbDirectory 16 目錄或文件夾
vbArchive 32 上次備份以後,文件已經改變
vbalias 64 指定的文件名是別名。
注意 這些常數是由 VBA 指定的,在程序代碼中的任何位置,可以使用這些常數來替換真正的值。
說明
若要判斷是否設置了某個屬性,在 GetAttr 函數與想要得知的屬性值之間使用 And 運算符與逐位比較。如果所得的結果不為零,則表示設置了這個屬性值。例如,在下面的 And 表達式中,如果檔案 (Archive) 屬性沒有設置,則返回值為零:
Result = GetAttr(FName) And vbArchive
如果文件的檔案屬性已設置,則返回非零的數值。
FileDateTime 返迴文件修改時間
返回一個 Variant (Date),此為一個文件被創建或最後修改後的日期和時間。
語法
FileDateTime(pathname)
必要的 pathname 參數是用來指定一個文件名的字元串表達式。pathname 可以包含目錄或文件夾、以及驅動器。
FileLen 返迴文件長度
返回一個 Long,代表一個文件的長度,單位是位元組。
語法
FileLen(pathname)
必要的 pathname 參數是用來指定一個文件名的字元串表達式。pathname 可以包含目錄或文件夾、以及驅動器。
說明
當調用 FileLen 函數時,如果所指定的文件已經打開,則返回的值是這個文件在打開前的大小。
注意 若要取得一個打開文件的長度大小,使用 LOF 函數。
Dir$ 返迴文件是否存在
返回一個 String,用以表示一個文件名、目錄名或文件夾名稱,它必須與指定的模式或文件屬性、或磁碟卷標相匹配。
語法
Dir[(pathname[, attributes])]
Dir 函數的語法具有以下幾個部分:
部分 描述
pathname 可選參數。用來指定文件名的字元串表達式,可能包含目錄或文件夾、以及驅動器。如果沒有找到 pathname,則會返回零長度字元串 ("")。
attributes 可選參數。常數或數值表達式,其總和用來指定文件屬性。如果省略,則會返回匹配 pathname 但不包含屬性的文件。
設置值
attributes 參數的設置可為:
常數 值 描述
vbNormal 0 (預設) 指定沒有屬性的文件。
vbReadOnly 1 指定無屬性的只讀文件
vbHidden 2 指定無屬性的隱藏文件
VbSystem 4 指定無屬性的系統文件
vbVolume 8 指定卷標文件;如果指定了其它屬性,則忽略vbVolume
vbDirectory 16 指定無屬性文件及其路徑和文件夾。
注意 這些常數是由 VBA 所指定的,在程序代碼中的任何位置,可以使用這些常數來替換真正的數值。
說明
Dir 支持多字元 (*) 和單字元 (?) 的通配符來指定多重文件。
由於 Macintosh 不支持通配符,使用文件類型指定文件組。可以使用 MacID 函數指定文件類型而不用文件名。比如,下列語句返回當前文件夾中第一個TEXT文件的名稱:
Dir("SomePath", MacID("TEXT"))
為選中文件夾中所有文件,指定一空串:
Dir("")
在 Microsoft Windows 中,如果在Dir函數中使用MacID函數,將產生錯誤。
任何大於256的attribute值都被認為是MacID 函數的值。
在第一次調用 Dir 函數時,必須指定 pathname,否則會產生錯誤。如果也指定了文件屬性,那麼就必須包括 pathname。
Dir 會返回匹配 pathname 的第一個文件名。若想得到其它匹配 pathname 的文件名,再一次調用 Dir,且不要使用參數。如果已沒有合乎條件的文件,則 Dir 會返回一個零長度字元串 ("")。一旦返回值為零長度字元串,並要再次調用 Dir 時,就必須指定 pathname,否則會產生錯誤。不必訪問到所有匹配當前 pathname 的文件名,就可以改變到一個新的 pathname 上。但是,不能以遞歸方式來調用 Dir 函數。以 vbDirectory 屬性來調用 Dir 不能連續地返回子目錄。
提示 由於文件名並不會以特別的次序來返回,所以可以將文件名存儲在一個數組中,然後再對這個數組排序。
Ⅷ vba 遍歷指定文件夾(含子目錄)獲取文件名,哪種方法速度最快
Sub LoopAllExcelFilesInFolder()
Dim wb As Workbook
Dim myPath As String
Dim myFile As String
Dim myExtension As String
Dim FldrPicker As FileDialog
'這里很關鍵,決定宏執行快慢的關鍵
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
'打開目錄選擇框
Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
With FldrPicker
.Title = "請選擇目錄"
.AllowMultiSelect = False
If .Show <> -1 Then GoTo NextCode
myPath = .SelectedItems(1) & "\"
End With
'取消選擇
NextCode:
myPath = myPath
If myPath = "" Then GoTo ResetSettings
'指定過濾的文件後綴
myExtension = "*.xls*"
'遍歷全路徑
myFile = Dir(myPath & myExtension)
'循環處理每一個文件
Do While myFile <> ""
'打開
Set wb = Workbooks.Open(Filename:=myPath & myFile)
'確保工作簿被打開,在處理下一個文件時
DoEvents
'設置背景色
wb.Worksheets(1).Range("A1:Z1").Interior.Color = RGB(51, 98, 174)
'保存工作簿
wb.Close SaveChanges:=True
'確保工作簿被關閉,在處理下一個文件時
DoEvents
'接著處理下一個
myFile = Dir
Loop
'提示處理完成
MsgBox "處理完成!"
ResetSettings:
'恢復設置
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Ⅸ EXCEL vba 讀取指定文件夾的名字和循環打開文件夾
就是遍歷文件夾嘛,關鍵代碼如下
在工程-引用里添加 microsoft scripting run time
然後用下面的兩個函數遞歸遍歷 就可以了
sub main()
Dim objFSO As Object
Dim objTemplateFolder As Object
Set objFSO = New Scripting.FileSystemObject
Set objTemplateFolder = objFSO.GetFolder(「D:\」)
getFiles objTemplateFolder
end sub
Sub getFiles(ByRef theFolder As Object)
Dim folder As Object
Dim c As New Scripting.FileSystemObject
『此處執行你的操作:打開關閉文件夾,取名字等
For Each folder In theFolder.subFolders
getFiles folder 』遞歸遍歷子文件夾
Next
End Sub
Ⅹ Excel中VBA提取文件夾名稱的方法
文章介紹excel中使用vba提取文件名的操作步驟。根據需要自行修改vba提取文件名的路徑和存放單元格即可。
在excel中使用VBA編寫代碼,可以輕松的提取某個文件夾下面的所有文件名。
比如筆者在F盤下面建立了一個文件夾,文件夾的名稱是:office教程網,現在想將「office教程網」這個文件夾下面的所有文件名提取出來放在當前工作表的C列。
具體的vba提取文件名的操作如下:
1.按下ALT+F11,打開VBE編輯器。
2.執行「插入——模塊」,插入模塊1。
3.在右邊的代碼編輯窗口,復制下面的代碼,然後單擊「綠色箭頭」或者快捷鍵F5鍵,運行代碼。
Private Sub vba提取文件名()
Dim FileName As String
Dim i As Long
FileName = Dir("F:\office教程網\*.*")
i = 0
Range("C:C").ClearContents
Do While FileName > ""
i = i + 1
Cells(i, 3) = FileName
FileName = Dir
Loop
End Sub
4.關閉VBE窗口,回到工作表中,可以在C列看到F盤「office教程網」文件夾下面所有的文件名全部羅列在C列了。
關於上面的vba提取文件名的代碼,請在實際使用時,根據需要修改提取文件名的路徑(F:\office教程網\*.*),以及存放在C列的位置(Cells(i, 3))。