请问:为什么在PPT中的VBA中用不了这句
powerpoint版中太冷清,所以跑来这里请教高手们:我想在PPT中通过对话框打开文本文件,用了以下语句:
GetFileName = Application.GetOpenFilename(FileFilter:="文本文件(*.txt),*.txt,HTML-files (*.htm*),*.htm*", Title:="请选取文本文件")
却提示"方法和数据成员未找到"的编译错误,请问高手们是如何实现对话框选择文件的.先谢了! PP中没有GetOpenFileName方法,试试
Application.CommandBars.FindControl(Id:=23).Execute 谢谢版主,但我想要的是获得对话框中所选取的文件名变量,
能不能用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
那获取文件名的函数是什么呢?请帮忙列出一下,谢谢! 我不知道如何解决,没有用过PP VBA 终于找到如下代码可实现(在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的VBA,但还是为楼主的成功高兴。一旦将来学习这一块了,不就有现成的师傅了吗?
页:
[1]