一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - VBA - VBA 瀏覽文件夾對話框調(diào)用的幾種方法

VBA 瀏覽文件夾對話框調(diào)用的幾種方法

2020-05-31 11:17VBA教程網(wǎng) VBA

VBA 瀏覽文件夾對話框調(diào)用實現(xiàn)代碼。大家可以根據(jù)需要選擇。

1、使用API方法

復制代碼 代碼如下:


'【類型聲明】
Private Type BROWSEINFO
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
'【API聲明】
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, _
ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Private Declare Function lstrcat Lib "kernel32" _
Alias "lstrcatA" (ByVal lpString1 As String, _
ByVal lpString2 As String) As Long
Private Declare Function OleInitialize Lib "ole32.dll" _
(lp As Any) As Long
Private Declare Sub OleUninitialize Lib "ole32" ()
Private Const BIF_USENEWUI = &H40
Private Const MAX_PATH = 260
'【自定義函數(shù)】
Public Function GetFolder_API(sTitle As String, Optional vFlags As Variant) As String
Dim lpIDList As Long
Dim sBuffer As String
Dim BInfo As BROWSEINFO
If IsMissing(vFlags) Then vFlags = BIF_USENEWUI
Call OleInitialize(ByVal 0&)
With BInfo
.lpszTitle = lstrcat(sTitle, "")
.ulFlags = vFlags
End With
lpIDList = SHBrowseForFolder(BInfo)
If (lpIDList) Then
sBuffer = Space(MAX_PATH)
SHGetPathFromIDList lpIDList, sBuffer
sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
If sBuffer <> "" Then GetFolder_API = sBuffer
End If
Call OleUninitialize
End Function
'【使用方法】
Sub Test()
MsgBox GetFolder_API("選擇文件夾")
End Sub


2、使用Shell.Application方法

復制代碼 代碼如下:


Sub GetFloder_Shell()
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "選擇文件夾", 0, 0)
If Not objFolder Is Nothing Then
MsgBox objFolder.self.path
End If
Set objFolder = Nothing
Set objShell = Nothing
End Sub


3、使用FileDialog方法

復制代碼 代碼如下:


Sub GetFloder_FileDialog()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show = -1 Then MsgBox fd.SelectedItems(1)
Set fd = Nothing
End Sub


以上方法在WINXP+OFFICE2003中測試通過

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: fquer老师| poronovideos极度变态 | 国产精品1024永久免费视频 | 国内精品 大秀视频 日韩精品 | 日本高清中文 | 91免费精品国自产拍在线不卡 | 麻豆小视频在线观看 | 揉搓喷水h | 日韩一品在线播放视频一品免费 | 精品四虎 | voyeur 中国女厕 亚洲女厕 | 免费看一级毛片 | 免费看黄色片网站 | 成人1234 | 久久偷拍人 | 2023毛片| 国产日韩精品一区二区在线观看 | 天天操丝袜 | 午夜影院免费入口 | 久久不射视频 | 极品一区 | 欧美人做人爱a全程免费 | 国产一区二区三区久久小说 | 美女脱一光二净的视频 | 亚洲精品午夜久久aaa级久久久 | 国产欧美一区二区三区久久 | 精品一区二区三区视频日产 | 网友自拍咪咪爱 | 日本动漫黄网站在线观看 | 视频免费| 日本免费的一级绿象 | 亚洲第一区二区快射影院 | 国产激情视频 | 青青草国产免费国产是公开 | 日韩欧美国产一区二区三区 | 色版网站 | 国产资源中文字幕 | 大伊人青草狠狠久久 | 91久久色 | 强行扒开美女大腿挺进 | 亚洲欧美一区二区三区在线观看 |