请问,VB 如何用API对话框选择Excel文件并获取完整路径?

jinjin336699 2020-06-28 11:39:17
请问,VB 如何用API对话框浏览文件,选择Excel文件并获取完整路径?从网上找了不少,可复制到程序里都有问题,谢谢!
...全文
273 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinjin336699 2020-07-01
  • 打赏
  • 举报
回复
问题已解决,感谢各位的关注!
jinjin336699 2020-06-29
  • 打赏
  • 举报
回复
网上能查到不少选择文件夹的,请问能不能修改成选择文件的,如下面这个代码测试很成功: option Explicit Private Const BIF_RETURNONLYFSDIRS = 1 Private Const BIF_DONTGOBELOWDOMAIN = 2 Private Const MAX_PATH = 260 Private Declare Function SHBrowseForFolder Lib "Shell32" _ (lpbi As BrowseInfo) As Long Private Declare Function SHGetPathFromIDList Lib "Shell32" _ (ByVal pidList As Long, _ ByVal lpBuffer As String) As Long Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" _ (ByVal lpString1 As String, ByVal _ lpString2 As String) As Long 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 Private Sub Command1_Click() Dim lpIDList As Long Dim sBuffer As String Dim szTitle As String Dim tBrowseInfo As BrowseInfo szTitle = "This is the title" With tBrowseInfo .hWndOwner = Me.hWnd .lpszTitle = lstrcat(szTitle, "") .ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN End With lpIDList = SHBrowseForFolder(tBrowseInfo) If (lpIDList) Then sBuffer = Space(MAX_PATH) SHGetPathFromIDList lpIDList, sBuffer sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1) MsgBox sBuffer End If End Sub
jinjin336699 2020-06-29
  • 打赏
  • 举报
回复
感谢答复!因大部分电脑都没有安装comdlg32.ocx,使用CommonDialog开发的程序打不开,尽管我们可以告诉他们安装方法,但非常麻烦!因此,我希望用API函数对话框浏览文件!
ZHRXJR 2020-06-29
  • 打赏
  • 举报
回复
好像不需要 API 函数就可以吧? 使用 CommonDialog1 控件就可以“选择Excel文件并获取完整路径”如下代码:

Private Sub Command1_Click()
On Error GoTo AAA
    CommonDialog1.InitDir = "C:\Windows"   '设置需要打开的目录
    CommonDialog1.Filter = "Excel文件(xlsx)|*.xlsx|Excel文件(xls)|*.xls"   '需要打开的文件类型
    CommonDialog1.CancelError = True
    CommonDialog1.ShowOpen
    Text1.Text = CommonDialog1.FileName      '文本框 Text1 显示了选择文件的路径+文件名+扩展名
Exit Sub
AAA:
    If Err.Number = 32755 Then
        MsgBox "你点击了【取消】按钮,将放弃这个操作!"
    Else
        MsgBox "发生了其他错误!"
    End If
End Sub
CommonDialog1 控件是一个对话框,它可以打开文件、保存文件、显示颜色对话框、字体对话框、打印机对话框、帮助对话框,功能比较强大。上面代码仅仅是打开文件对话框,你可以举一反三了吧。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧