Excel 导出为PDF宏缺少形状
我有一个宏,点击一个按钮,将生成一个条形码图像(图像只由形状组成),然后,将3张图纸导出为pdf。我遇到的问题是,这样做会生成条形码图像,但当导出为PDF时,用于生成条形码的形状不会显示出来。如果我打印或打印到pdf而不使用“导出到pdf”宏,它们将显示出来,但这违背了宏的要点 更令人头痛的是,此代码位于电子表格的不同版本(电子表格是一个模板)上,但宏过程在该电子表格上运行良好。我将工作代码复制/粘贴到电子表格中,这给我带来了麻烦,而麻烦制造者仍然无法工作。下面是相关代码。为什么导出的PDF中不包含形状Excel 导出为PDF宏缺少形状,excel,vba,pdf,Excel,Vba,Pdf,我有一个宏,点击一个按钮,将生成一个条形码图像(图像只由形状组成),然后,将3张图纸导出为pdf。我遇到的问题是,这样做会生成条形码图像,但当导出为PDF时,用于生成条形码的形状不会显示出来。如果我打印或打印到pdf而不使用“导出到pdf”宏,它们将显示出来,但这违背了宏的要点 更令人头痛的是,此代码位于电子表格的不同版本(电子表格是一个模板)上,但宏过程在该电子表格上运行良好。我将工作代码复制/粘贴到电子表格中,这给我带来了麻烦,而麻烦制造者仍然无法工作。下面是相关代码。为什么导出的PDF中不
Sub BevelPrint_Click()
' DisplayBarcode generates a code128 scannable barcode. Max of 14 characters for the selected line width and max width
Call DisplayBarcode
Sheets(Array("(Cal Cert) Page 1 of 3", "(Cal Cert) Page 2 of 3", "(Cal Cert) Page 3 of 3")).Select
' If Application.Dialogs(xlDialogPrinterSetup).Show = True Then
Dim varResult As Variant
Dim ActBook As Workbook
Dim defaultPath As String
Dim WorkbookName As String
'Dim fso As New Scripting.FileSystemObject
' WorkbookName = fso.GetBaseName(ThisWorkbook.Name)
WorkbookName = ThisWorkbook.Sheets("(0) Calibration System QC").Range("B2").Value
WorkbookName = WorkbookName & " Cert"
defaultPath = "\\TSISVFP01\MANUFACTURING\W405 - Particle\"
defaultPath = defaultPath & WorkbookName
'displays the save file dialog
varResult = Application.GetSaveAsFilename(FileFilter:= _
"PDF File (*.pdf), *.pdf, Excel Files (*.xlsx), *.xlsx", Title:="Save Cert as PDF", _
InitialFileName:=defaultPath)
If varResult <> False Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
varResult, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End If
' End If
Sheets("(0) Calibration System QC").Select
End Sub
如果您手动将“问题”表导出为PDF格式,是否有效?是-通过并打印->打印为PDF格式将显示形状。打印为PDF格式,或另存为PDF格式
ExportAsFixedFormat
与另存为PDF相同。最初我是用print to PDF测试这一点的,但后来又改为PDF(我不知道有什么不同),我遇到了与使用宏时相同的问题。
Sub DisplayBarcode()
Dim s As Shape
ThisWorkbook.Worksheets("(Cal Cert) Page 1 of 3").Activate
For Each s In ThisWorkbook.Worksheets("(Cal Cert) Page 1 of 3").Shapes
If s.Name Like "*Straight*" Then
ThisWorkbook.Worksheets("(Cal Cert) Page 1 of 3").Shapes(s.Name).Select
Selection.Delete
End If
Next s
Code128Generate_v2 184, 72, 9, 1.5, Worksheets("(Cal Cert) Page 1 of 3"), ThisWorkbook.Sheets("(0) Calibration System QC").Range("B2"), 40
Dim t As Shape
For Each t In ThisWorkbook.Worksheets("(Cal Cert) Page 1 of 3").Shapes
t.ControlFormat.PrintObject = True
Next t
End Sub