根据2个单元格值将excel发票另存为xlsm和pdf,然后打印...一个解决方案

Posted

技术标签:

【中文标题】根据2个单元格值将excel发票另存为xlsm和pdf,然后打印...一个解决方案【英文标题】:Save excel invoice as xlsm and pdf based on 2 cell values and then print...A Solution 【发布时间】:2017-03-21 13:11:59 【问题描述】:

我的目标是在 Excel 发票上有一个按钮,一旦按下该按钮将打印发票,保存到 xlsm,保存到 pdf(两者都保存为从两个单元格中获取自动名称,发票编号和客户名称)然后关闭下来工作簿。

我已经在低位和高位搜索了这个问题的答案,但只在单独的元素中找到了帮助。

文件名所需的单元格是 C18 和 A7。

【问题讨论】:

那么你的问题是什么? 感谢您的编辑,这实际上是我自己的问题的答案,我找不到答案...我通过搜索问题的不同元素找到了解决方案。只是想分享它,以便其他有相同问题的人可以轻松找到它。 那么你应该先问一个正确的问题,然后将你的答案发布为你的问题的答案。另请阅读 Can I answer my own question? 和 Can I answer my own questions, even if I knew the answer before asking?。 感谢您的信息,我是新来的,所以下次会继续! 欢迎来到 ***,在这里成为新人没问题;)您可以将您的问题编辑为一个好问题 (How to Ask),然后发布您已有的答案作为答案。你真的应该把它变成一个问题+答案,因为如果你不这样做,我认为这个问题很快就会被社区关闭。该网站不同于论坛,它基于问答模式。 【参考方案1】:

感谢 Peh 教我正确的礼仪。这是我的问题的答案-

这是代码-(请阅读标有 ' 的 cmets 以了解每个位的作用)

Sub SaveandPrint() 'this is the macro's name

    Dim FileName As String
    Dim Path As String

    ActiveSheet.PrintOut 'this bit prints the sheet
    Application.DisplayAlerts = False

    Path = "C:\add\your\file\destination\here" 'Change the directory path here where you want to save the file
    FileName = Range("C18").Value & " " & Range("A7").Value & ".xlsm" 'Change extension here for different excel formats.
    'Also, change range cell values to select different cell value for naming
    ActiveWorkbook.SaveAs Path & FileName, xlOpenXMLWorkbookMacroEnabled 'Change the format here which matches with the extension above. 'Choose from the following link http://msdn.microsoft.com/en-us/libr.../ff198017.aspx

    Application.DisplayAlerts = True

    Dim fName As String 'this is the saving to pdf bit
    fName = Range("C18").Value & " " & Range("A7").Value 'again, change cells to C18 and A7 to the ones you want to name file

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
    "C:\add\your\file\destination\here" & fName, Quality:=xlQualityStandard, _ 'change destination folder 
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

    ActiveWorkbook.Close 'closes the workbook

End Sub

希望这会有所帮助并节省大量时间,我花了很长时间才把头包起来并实施它!

【讨论】:

看起来更好。现在你的最后一步应该是mark your own answer as solution,这样大家就看到问题解决了。 干杯,说我必须等待 2 天才能接受作为解决方案,所以会回来的。 Muchos Gracias Peh!

以上是关于根据2个单元格值将excel发票另存为xlsm和pdf,然后打印...一个解决方案的主要内容,如果未能解决你的问题,请参考以下文章

在“新”文件->另存为用户界面上将默认设置为 xlsm,用于特定模板

VBA 如何批量将单元格复制到另一个工作表中

xlsm的文件怎么打开?

在excel中另存为宏

excel文件下有感叹号,打不开怎么办?

excel表格xlsx格式文件打开后自动变成xlsm文件怎么回事?