當前位置:
首頁 > 最新 > 不打開文件獲取名稱。Excel VBA Application對象GetOpenFilename方法教程

不打開文件獲取名稱。Excel VBA Application對象GetOpenFilename方法教程

Excel 2013 VBA進階實戰教程系列

第-10.2-節 GetOpenFilename獲取文件完整名稱

工作簿文件是Excel數據存放和所有操作的基礎,今天小編excel小課堂(ID:excel-xiaoketang 長按複製)就和各位一起學習如何使用GetOpenFilename方法實現不打開工作簿文件而獲取文件完整路徑+名稱的方法,可以指定單個或多個文件哦!

01

Application.GetOpenFilename 方法

GetOpenFilename方法:顯示標準的「打開」對話框,獲取用戶文件名,而不必真正打開任何文件。本方法返回的是選定的文件名或用戶輸入的文件名。返回的名稱可能包含路徑的說明。

Expression.GetOpenFilename(FileFilter,FilterIndex,Title,ButtonText,MultiSelect)

02

打開單個文件

本例顯示Excel文件的「打開」對話框。如果用戶選擇了一個文件名,則在消息框中顯示所選的文件名。如果沒有選中文件,則顯示「沒有選中文件」。"由於示例中MultiSelect:=False,所以fileToOpen是一個變數,其後的判斷語句必須用If fileToOpen False Then...,而不能用If IsArray(fileToOpen) Then...。因為不論是否選中了文件,fileToOpen都不是一個數組,所以用這句話不能區分是選中了文件,還是選擇了「取消」。雖然不會報錯,但達不到目的。

Sub openfile()

Sub OpenFile1()

Dim bSuccess As Boolean

MsgBox "請定位到TEMP.xlsx文件."

bSuccess = Application.FindFile

If Not bSuccess Then

MsgBox "該文件沒有打開."

End If

End Sub

03

打開多個文件

本例顯示Excel文件的「打開」對話框。如果用戶選擇了多個(至少有一個)文件名,則分別打開這些文件,並複製其第一行的內容到本工作表中。如果沒有選中文件,則顯示「沒有選中文件」。由於MultiSelect:=True,所以當用戶選中文件時fileToOpen是一個數組(數組下標總是從1開始,到Ubound(fileToOpen),即不受Option Base的影響),其後的判斷語句必須用If IsArray(fileToOpen) Then...,而不能用If fileToOpen False Then...,如果使用了後者,當用戶不選擇文件時,程序能正常運行,當用戶選擇了文件時,程序就會出錯,提示「運行時錯誤 『13』:類型不匹配」)。

Sub OpenMultiFile()

Dim fileToOpen As Variant

Dim i As Integer, name1 As String

ChDir "C:UsersxujingleDesktop資料quotationVBA視頻素材速查手冊Application對象的GetOpenFilename方法"

fileToOpen = Application.GetOpenFilename(FileFilter:="Microsoft Office Excel 文件(*.xlsx),*.xlsx,所有文件(*.*),*.*", title:="選擇文件,可以多選,按Ctrl+A可全選", MultiSelect:=True) "("Text Files(*.txt),*.txt")

If IsArray(fileToOpen) Then

For i = 1 To UBound(fileToOpen)

Workbooks.Open Filename:=fileToOpen(i) "打開第一個文件

name1 = ActiveWorkbook.Name "取得活動工作簿的名稱

Rows("1:1").Copy "複製

ThisWorkbook.Activate "激活本工作簿

Range("A" & i + 1).Activate "激活相應的行

ActiveSheet.Paste "粘貼

Application.CutCopyMode = False

Windows(name1).Close savechanges:=flase "關閉系列工作簿且不保存

Next i

Else

Debug.Print "沒有選中文件"

End If

End Sub


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 excel小課堂 的精彩文章:

TAG:excel小課堂 |