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

腳本之家,腳本語言編程技術(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中測試通過

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产haodiaose最新 | www日本高清视频 | 精品国产乱码久久久久久人妻 | 国产成人成人一区二区 | 91手机看片国产永久免费 | 欧美三级小说 | 欧美日韩在线观看一区二区 | 色老板视频在线 | 啊皇上你好大要知画 | 波多野结衣在线中文 | 免费网站看v片在线成人国产系列 | 超级碰在线视频 | 亚洲啊v| 日本一区二区视频在线 | 视频精品一区二区三区 | 亚洲精品一区二区久久这里 | 艾秋麻豆果冻剧传媒在线播放 | 久久影院中文字幕 | 日韩在线观看网站 | 亚洲高清中文字幕一区二区三区 | 情趣内衣在线观看 | 日本三级在丈面前被耍了 | 男生和老师一起差差差 | 美女被爆| 亚洲 欧美 中文 日韩 视频 | 国产色综合久久五月色婷婷中文 | 国产伦码精品一区二区三区 | 免费三及片 | 男人和女人日比 | 亚洲精品www久久久久久久软件 | 国产片在线看 | 久久这里只有精品视频e | 超级乱淫伦短篇小说做车 | 日本又黄又裸一级大黄裸片 | 久久久久嫩草影院精品 | 百合文高h | 亚洲国产在线观看免费视频 | 日韩一区二区三区免费 | 亚洲一成人毛片 | 久久99国产精品二区不卡 | 91精品综合久久久久m3u8 |