我已经构建了一个Invoice工作表,其顶部(A1:K19)将保持静态;这是发票的顶部。在第19行下方开始单个项目行,这些项目行将填充订购的项目。
我为用户创建了一个宏,它会自动将发票格式化为1页PDF并自动隐藏未使用的订单项行;但是我在每个行项目行中都有图片。
当我运行我的宏时,它会隐藏所有想要最后一张的照片。如何隐藏刚刚伸出的最后一个图像框,并且不会隐藏行。如果我单独隐藏那一行,它就会隐藏,但是如果一组则没有。
以下是我编写的当前VBA脚本。
Sub Save_Quote_As_PDF()
Application.ScreenUpdating = False
For i = 20 To 59
If ActiveSheet.Cells(i, 3) = "" Then
ActiveSheet.Cells(i, 3).EntireRow.Hidden = True
End If
Next i
Dim PdfFilename As Variant
PdfFilename = Application.GetSaveAsFilename( _
InitialFileName:=ActiveWorkbook.Path & "\" & ActiveSheet.Range("N2").Value, _
FileFilter:="PDF, *.pdf", _
Title:="Save As PDF")
If PdfFilename <> False Then
With ActiveSheet.PageSetup
.Orientation = xlPortrait
.PrintArea = "$A$1:$K$78"
.PrintTitleRows = ActiveSheet.Rows(19).Address
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
End With
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=PdfFilename, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=False, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End If
For i = 20 To 59
If ActiveSheet.Cells(i, 3) = "" Then
ActiveSheet.Cells(i, 3).EntireRow.Hidden = False
End If
Next i
Application.ScreenUpdating = True
End Sub
以下是pdf部分的屏幕截图,其中显示了显示
的pic对象
答案 0 :(得分:1)
我用自己的示例数据重新创建了上面的代码。问题似乎是图像没有“移动和大小与细胞”(在他们的属性中)。
如果你在其他地方有代码,那就是插入这些图像,那么你需要这样做,
Sub Move_Size()
Dim i As Long
For i = 1 To ActiveSheet.Shapes.Count
On Error Resume Next
With ActiveSheet.Shapes.Item(i)
.Placement = xlMoveAndSize
.PrintObject = True
End With
Next i
On Error Goto 0
End Sub