GetOpenFilename
'一、概述基本語法
Application.GetOpenFilename 方法
顯示標准的“打開”對話框,並獲取用戶文件名,而不必真正打開任何文件,只是把打開文件名稱返回程序。
'GetOpenFilename相當於Excel打開窗口,通過該窗口選擇要打開的文件,並可以返回選擇的文件完整路徑和文件名。
語法:
'Application.GetOpenFilename(文件類型篩選規則,優先顯示第幾個類型的文件,標題,是否允許選擇多個文件名)
表達式.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
表達式 一個代表 Application 對象的變量。
參數
名稱 |
必選/可選 |
數據類型 |
說明 |
FileFilter |
可選 |
Variant |
一個指定文件篩選條件的字符串。 |
FilterIndex |
可選 |
Variant |
指定默認文件篩選條件的索引號,取值范圍為 1 到由 FileFilter 所指定的篩選條件數目。如果省略該參數,或者該參數的值大於可用篩選條件數,則使用第一個文件篩選條件。 |
Title |
可選 |
Variant |
指定對話框的標題。如果省略該參數,則標題為“打開”。 |
ButtonText |
可選 |
Variant |
僅限 Macintosh。 |
MultiSelect |
可選 |
Variant |
如果為 True,則允許選擇多個文件名。如果為 False,則只允許選擇一個文件名。默認值為 False。 |
返回值
Variant
說明
如果點擊了取消,返回false
'二、示例
'1、打開文件類型(word和excel)
在 FileFilter 參數中傳遞的該字符串由文件篩選字符串對以及后跟的 MS-DOS 通配符文件篩選規范組成,中間以逗號分隔。每個字符串都在“文件類型”下拉列表框中列出。例如,下列字符串指定兩個文件篩選 - 文本和加載宏:“文本文件 (*.txt)、*.txt、加載宏文件 (*.xla)、*.xla”。
要為單個文件篩選類型使用多個 MS-DOS 通配符表達式,需用分號將通配符表達式分開。例如:“Visual Basic 文件 (*.bas; *.txt)、*.bas; *.txt”。
如果省略 FileFilter,則此參數默認為“所有文件 (*.*),*.*”。
Sub test1()
Dim fileToOpen
fileToOpen = Application.GetOpenFilename("文本文件 (*.txt)、*.txt、加載宏文件 (*.xla)、*.xla ")
MsgBox "Open " & fileToOpen
End Sub
注:如果點擊了取消,返回false
2.打開多種文件類型,默認顯示word文件
本方法返回選定的文件名或用戶輸入的名稱。返回的名稱可能包含路徑說明。如果 MultiSelect 為 True,則返回值將是一個包含所有選定文件名的數組(即使僅選定了一個文件名)。如果用戶取消了對話框,則該值為False。
Sub test2()
Dim fileToOpen
fileToOpen = _
Application.GetOpenFilename("Excel2003文件,*.xls,Word文件,*.doc,文本文件,*.txt", 2, _
"打開您想查詢的文件")
MsgBox fileToOpen
End Sub
3.選擇多個文件,返回數組
Sub test3()
Dim arr
arr = _
Application.GetOpenFilename("Excel2010文件,*.xlsx,Word文件,*.docx,文本文件,*.txt", _
3, MultiSelect:=True)
MsgBox arr(0)
End Sub
4.改變窗口默認路徑
ChDrive 語句 改變當前的驅動器。
ChDrive drive
必要的 drive 參數是一個字符串表達式,它指定一個存在的驅動器。如果使用零長度的字符串 (""),則當前的驅動器將不會改變。如果 drive 參數中有多個字符,則 ChDrive 只會使用首字母。 在 Macintosh 中, ChDrive 將當前文件夾改變到指定驅動器的根文件夾。
ChDir 語句 改變當前的目錄或文件夾。
ChDir path
必要的 path 參數是一個字符串表達式,它指明哪個目錄或文件夾將成為新的缺省目錄或文件夾。path 可能會包含驅動器。如果沒有指定驅動器,則 ChDir 在當前的驅動器上改變缺省目錄或文件夾。
ChDir 語句改變缺省目錄位置,但不會改變缺省驅動器位置。例如,如果缺省的驅動器是 C,則下面的語句將會改變驅動器 D 上的缺省目錄,但是 C 仍然是缺省的驅動器:
ChDir "D:\TMP"
在 Power Macintosh 中,默認驅動器總是改為在 path 語句中指定的驅動器。完整路徑指定由卷標名開始,相對路徑由冒號 (:) 開始. ChDir 可以辨認路徑中指定的別名:
ChDir "MacDrive:Tmp" ' 在 Macintosh 中。
注意 當改變相對路徑時,在 Microsoft Windows 和 Macintosh 中使用不同符號:
ChDir ".." ' 在 Microsoft Windows 中,上移一層目錄.
ChDir "::" ' 在 Macintosh 中,上移一層目錄。
Sub test4()
Dim fileToOpen
ChDrive "E"
ChDir ThisWorkbook.Path
fileToOpen = Application.GetOpenFilename("Excel2003文件,*.xls,Word文件,*.doc,文本文件,*.txt", 1)
MsgBox fileToOpen
End Sub