找回密码
 立即注册
搜索

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

5
回复
778
查看
[复制链接]

18

主题

492

帖子

338

幻币

豪侠武师

Rank: 4

积分
839
QQ
2016-4-12 12:15:23 显示全部楼层 |阅读模式
powerpoint版中太冷清,所以跑来这里请教高手们:
我想在PPT中通过对话框打开文本文件,用了以下语句:
GetFileName = Application.GetOpenFilename(FileFilter:="文本文件(*.txt),*.txt,HTML-files (*.htm*),*.htm*", Title:="请选取文本文件")
却提示"方法和数据成员未找到"的编译错误,请问高手们是如何实现对话框选择文件的.先谢了!
PPT学习论坛
回复

使用道具 举报

16

主题

215

帖子

43

幻币

一流武者

Rank: 3Rank: 3

积分
264
QQ
2016-4-12 13:32:46 显示全部楼层
PP中没有GetOpenFileName方法,试试
Application.CommandBars.FindControl(Id:=23).Execute
PPT学习论坛
回复 支持 反对

使用道具 举报

21

主题

231

帖子

49

幻币

一流武者

Rank: 3Rank: 3

积分
280
QQ
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
那获取文件名的函数是什么呢?请帮忙列出一下,谢谢!
PPT学习论坛
回复 支持 反对

使用道具 举报

13

主题

224

帖子

41

幻币

一流武者

Rank: 3Rank: 3

积分
290
QQ
2016-4-12 14:43:00 显示全部楼层
我不知道如何解决,没有用过PP VBA
PPT学习论坛
回复 支持 反对

使用道具 举报

11

主题

222

帖子

37

幻币

一流武者

Rank: 3Rank: 3

积分
278
QQ
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
PPT学习论坛
回复 支持 反对

使用道具 举报

16

主题

212

帖子

98

幻币

一流武者

Rank: 3Rank: 3

积分
331
QQ
2016-4-12 15:32:58 显示全部楼层
虽然还没准备研究PPT的VBA,但还是为楼主的成功高兴。一旦将来学习这一块了,不就有现成的师傅了吗?
PPT学习论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册