【问题标题】:Saving Excel VBA Userforms as PDFs将 Excel VBA 用户表单另存为 PDF
【发布时间】:2021-05-15 07:11:56
【问题描述】:

我在 Excel 中创建了一个运行良好的用户表单。不幸的是,我在保存表格时遇到了麻烦。想法是,几个同事可以使用此表单,因此拥有标准保存文件夹或驱动器不起作用,因为并非所有同事都可以访问所有驱动器。我希望出现一个窗口,询问用户将文档保存为 pdf 的位置。我知道有“saveCopyAs”命令,但我不能让它以 PDF 格式运行。

【问题讨论】:

  • 您想保存为 pdf 的具体内容是什么?表格的图片,它的文本代码?您知道表单可以导出(作为 .frm 文件)然后导入另一个工作簿吗?我应该向您展示如何在 VBA 中做到这一点吗?但是,如果你真的需要它作为 pdf,请澄清第一个问题。
  • 感谢您的回答!用户窗体将信息插入工作表。我正在尝试将该特定工作表另存为 pdf。
  • 所以您的问题不是关于用户表单,而只是关于将 Excel 工作表另存为 PDF?你能改写你的问题吗?您可能正在寻找Workbook.ExportAsFixedFormat(这花了我大约 30 秒才弄清楚使用我选择的搜索引擎)
  • 嘿,是的,我的问题的措辞有点不幸。让我再试一次:我有一个用户表单,可以将信息插入 Excel 工作表。在该用户表单中,我想要一个将信息插入工作表的按钮(已经工作),但我也希望该按钮自动将该特定工作表保存为 pdf(并且最好让用户选择应该保存的位置)用户在 Excel 工作表本身中单击。所以基本上一切都应该在那个用户表单中发生。谢谢
  • 然后,试试我发布的代码。它将活动工作表导出为 pdf...

标签: excel vba forms pdf userform


【解决方案1】:

请尝试下一个简单的代码。运行代码以按照您的方式导出表单,激活发生此操作的工作表并运行下一个代码,或者在进行导出的过程中插入这些代码行:

Sub exportShAsPDF()
   Dim strPath As String
     
   strPath = folderPicker 'the ending "\" included...
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:= _
                                             strPath & "Form.pdf"
End Sub

使用下一个函数选择保存pdf文件的文件夹:

Function folderPicker() As String
  Dim tempFileDialog As FileDialog, initialFolder As String, strN As String
    
    initialFolder = "C:\"
    
    Set tempFileDialog = Application.FileDialog(msoFileDialogFilePicker)
    
    With tempFileDialog
        .AllowMultiSelect = False
        .InitialFileName = initialFolder
        If Not .Show = -1 Then Exit Function
    End With
    strN = tempFileDialog.SelectedItems(1)
    folderPicker = left(strN, InStrRev(strN, "\"))
End Function

【讨论】:

  • @MarkAKE:你有时间检查上面的代码吗?如果经过测试,它没有解决您的问题吗?
猜你喜欢
  • 2019-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多