Excel到pdf命令行宏-对象不';不支持此属性或方法错误438
我目前正在构建一个宏,用于将excel工作表(xls或xlsx)导出为pdf文件。我想这样调用宏:Excel到pdf命令行宏-对象不';不支持此属性或方法错误438,excel,vba,Excel,Vba,我目前正在构建一个宏,用于将excel工作表(xls或xlsx)导出为pdf文件。我想这样调用宏: cmd.exe /C "C:/[...]excel.exe" /e /q C:/[...]/MacroFile.xlsm /a C:/[...]/filetobeconverted.xls 这就是我目前所拥有的 Option Explicit Public Sub Excel2Pdf() Dim sPDFFilename As String Dim Newfilename As String
cmd.exe /C "C:/[...]excel.exe" /e /q C:/[...]/MacroFile.xlsm /a C:/[...]/filetobeconverted.xls
这就是我目前所拥有的
Option Explicit
Public Sub Excel2Pdf()
Dim sPDFFilename As String
Dim Newfilename As String
'Application.Workbooks.Open sFilename
Newfilename = (Replace(ActiveSheet.FullName, ".xls", ".pdf"))
Newfilename = (Replace(Newfilename, ".xlsx", ".pdf"))
ActiveSheet.ExportAsFixedFormat Newfilename, xlTypePDF
ActiveSheet.Close
Application.Quit
End Sub
然而,我得到:
运行时错误“438:对象不支持此属性或方法”
正确方向上的每一次轻推都是值得赞赏的。代码中的两个问题导致
438
错误:
不支持ActiveSheet
方法。因此,这里的这一行-Close
ActiveSheet.Close会导致错误。删除它,它会工作得很好
没有ActiveSheet
属性。它有FullName
.Name
也不支持
FullName
如果要关闭它,可以写:ActiveSheet.Parent.close这解决了问题。但是,它会打印到OneNote而不是PDF。你知道为什么吗?@maRei-恭喜你!现在,您可以考虑将答案标记为“接受”。对于这个问题-我猜电脑的设置是OneNote默认以.pdf
扩展名打开文件?尝试使用acrobat打开“打印”文件,查看它是否为pdf文件。