佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > VBA 瀏覽文件夾對話框調(diào)用的幾種方法

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

熱門標(biāo)簽:企業(yè)做大做強(qiáng) 客戶服務(wù) 電話運(yùn)營中心 百度AI接口 Win7旗艦版 語音系統(tǒng) 硅谷的囚徒呼叫中心 呼叫中心市場需求
1、使用API方法 
復(fù)制代碼 代碼如下:

'【類型聲明】
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方法
復(fù)制代碼 代碼如下:

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方法
復(fù)制代碼 代碼如下:

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中測試通過
您可能感興趣的文章:
  • VBA 編程基礎(chǔ)
  • excel vba 高亮顯示當(dāng)前行代碼
  • Excel VBA連接并操作Oracle
  • vba 獲取PPT幻燈片中的所有標(biāo)題的代碼
  • VBA中連接SQLSERVER數(shù)據(jù)庫例子
  • VBA解決Windows空當(dāng)接龍的617局

標(biāo)簽:長沙 濟(jì)南 安康 崇左 喀什 山西 海南 山西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《VBA 瀏覽文件夾對話框調(diào)用的幾種方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    灯塔市| 民和| 济南市| 靖宇县| 区。| 江油市| 荆门市| 清丰县| 建阳市| 朔州市| 盐山县| 洛南县| 漳浦县| 夹江县| 涟源市| 九台市| 汉中市| 普格县| 安平县| 云浮市| 红河县| 南开区| 上高县| 赤峰市| 黄冈市| 松潘县| 沙湾县| 临海市| 泸定县| 赣州市| 东方市| 柳州市| 鞍山市| 江川县| 德江县| 肥城市| 新竹市| 福安市| 湟中县| 获嘉县| 清水河县|