user_yxoimjwi 发表于 2016-4-12 12:15:23

请问:为什么在PPT中的VBA中用不了这句

powerpoint版中太冷清,所以跑来这里请教高手们:
我想在PPT中通过对话框打开文本文件,用了以下语句:
GetFileName = Application.GetOpenFilename(FileFilter:="文本文件(*.txt),*.txt,HTML-files (*.htm*),*.htm*", Title:="请选取文本文件")
却提示"方法和数据成员未找到"的编译错误,请问高手们是如何实现对话框选择文件的.先谢了!

jinshuseze 发表于 2016-4-12 13:32:46

PP中没有GetOpenFileName方法,试试
Application.CommandBars.FindControl(Id:=23).Execute

user_ushbn 发表于 2016-4-12 14:24:21

谢谢版主,但我想要的是获得对话框中所选取的文件名变量,
能不能用API函数呢?我对API不熟悉,只找到获取路径的Declare声明,即
Private Declare Function SHGetPathFromIDList Lib "Shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As LongPrivate Declare Function SHBrowseForFolder Lib "Shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As LongPrivate Type BROWSEINFO ...
Private Sub mulukuang()Dim bi As BROWSEINFO '声明必要的变量
    Dim rtn&, pidl&, path$, pos%
   'bi.hOwner = Me.Hwnd '使对话框处于屏幕中心
    bi.lpszTitle = "选择目录..." '设置标题文字
    bi.ulFlags = BIF_RETURNONLYFSDIRS '返回文件夹的类型
    pidl& = SHBrowseForFolder(bi) '显示对话框
    path = Space(512) '设置字符数的最大值
    T = SHGetPathFromIDList(ByVal pidl&, ByVal path) '获得所选的路径
    pos% = InStr(path$, Chr$(0)) '从字符串中提取路径
    SpecIn = Left(path$, pos - 1)
    If Right$(SpecIn, 1) = "" Then
   specout = SpecIn
    Else
   specout = SpecIn + ""
    End IfEnd Sub
那获取文件名的函数是什么呢?请帮忙列出一下,谢谢!

user_gdgdg 发表于 2016-4-12 14:43:00

我不知道如何解决,没有用过PP VBA

xinwenyoj 发表于 2016-4-12 15:18:03

终于找到如下代码可实现(在XP系统下调试成功),狂喜ing,希望想用的朋友试试!
Sub getFileName()    ' 显示一个 Office 打开文件对话框,
    ' 选择一个文件名.如果用户选择了一个文件,    Dim fileName As String    Dim result As Integer    With Application.FileDialog(msoFileDialogFilePicker)      .Title = "选择文本文件"      .Filters.Add "所有文件", "*.*"      .Filters.Add "JPEGs", "*.jpg"      .Filters.Add "文本文件", "*.txt"      .FilterIndex = 3      .AllowMultiSelect = False      .InitialFileName = CurrentProject.path      result = .Show      If (result <> 0) Then            fileName = Trim(.SelectedItems.Item(1))      End If    End WithEnd Sub

henji3000 发表于 2016-4-12 15:32:58

虽然还没准备研究PPT的VBA,但还是为楼主的成功高兴。一旦将来学习这一块了,不就有现成的师傅了吗?
页: [1]
查看完整版本: 请问:为什么在PPT中的VBA中用不了这句