更新: 我尝试pdf的excel数据样本和通常在下面创建的pdf文件 Excel - http://i.imgur.com/lnE1VER.jpg PDF - http://i.imgur.com/yNDHFMv.jpg
问题似乎是该流程没有检测到工作表中的任何内容 - 有关我如何激活'的任何建议。内容?
-
我有一个将excel报告转换为PDF文件的VBA宏 - 我想在几个工作簿中复制代码,但是当我这样做时,它可以在某些工作簿中工作而不是其他工作簿。
代码如下 - 我将每个中的四个Const值更新为每个工作簿的相关单元格/值,并且我检查了每个工作簿中是否选择了相同的引用。
当我运行代码时,它会循环,更改索引单元格并生成包含新数据的PDF。在其中一个工作簿中虽然没有创建PDF,但我已经逐步完成了代码,它创建了postscript文件,但没有将其转换为PDF。
Public Sub ExportGraphs()
Const indexCell = "B55"
Const totalCell = "D55"
Const authorityName = "B5"
Const fileName = "Civic cultural and community venues performance indicator standings report 2013-14 - "
Application.ScreenUpdating = False
Application.ShowWindowsInTaskbar = False
Application.DisplayAlerts = False
Application.EnableEvents = False
Dim i As Integer
Dim awb As Workbook
Set awb = ThisWorkbook
Dim myPDF As PdfDistiller
Set myPDF = New PdfDistiller
For i = 1 To awb.Worksheets("PIN").Range(totalCell).Value
awb.Worksheets("PIN").Range(indexCell).Value = i
Dim strGraphLoc, strPIN As String
strPIN = awb.Sheets("PIN").Range(authorityName).Value & " " & awb.Worksheets("PIN").Range("B6").Value
strGraphLoc = awb.Path & "/"
Dim PSFileName As String
Dim PDFFileName As String
PSFileName = strGraphLoc & fileName & strPIN & ".ps"
PDFFileName = strGraphLoc & fileName & strPIN & ".pdf"
'Print the Excel range to the postscript file
awb.Sheets("PIN").PrintOut copies:=1, from:=1, preview:=False, ActivePrinter:="Acrobat Distiller", printtofile:=True, collate:=True, prtofilename:=PSFileName
'Convert the postscript file to .pdf
myPDF.FileToPDF PSFileName, PDFFileName, ""
Kill PSFileName
Kill strGraphLoc & fileName & strPIN & ".log"
Next i
Set myPDF = Nothing
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.ShowWindowsInTaskbar = True
Application.EnableEvents = True
End Sub
任何帮助都将不胜感激,我不能为我的生活找出原因,为什么它在一些而不是其他人中有效。
在我遇到问题的工作簿中,创建了一个0kb的postscript文件和一个文本文件:
%% [警告:空工作。没有生成PDF文件。 ] %%
答案 0 :(得分:0)
从显而易见的开始:0字节的PostScript语言文件不包含图形,因此Distiller无法将其转换为有意义的PDF文件。那么,为什么Postscript语言文件长0个字节?
问题电子表格中的打印失败了。
让VBA解决问题。尝试通过Excel"打印"从问题电子表格打印。菜单项。打印到PostScript和非PostScript打印机。我怀疑也会失败。
诊断打印失败。一旦"打印"菜单项有效,我怀疑VBA脚本也会。
答案 1 :(得分:0)
在撕掉我的头发并且找不到近6个月的解决方案后,我的同事刚刚怀疑它 - 我们试图创建的PDF的文件名太长了,我们缩短了它现在工作正常!
我正在寻找谎言