Excel – 在发票行中隐藏最后一张照片

我build立了一个发票工作表,其顶部(A1:K19)将保持静态; 这是发票的顶部。 在第19行之下,将启动单个项目行,这些项目行将填充订购的项目。

我为用户创build了一个macros,它将自动将发票格式化为1页的PDF,并自动隐藏未使用的行项目行; 但是,我在每个订单项行中都有图片。

当我运行我的macros时,它隐藏了期待最后一个的所有图片。 我怎样才能隐藏刚刚伸出的最后一个图像框,并不隐藏行。 如果我单独隐藏那一行,就隐藏起来,但是对于一个组,它不会。

下面是我写的当前的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部分的屏幕截图

图片不隐藏在PDF结果中的屏幕截图

我用我自己的示例数据重新创build了上面的代码。 这个问题似乎是当图像没有“移动和大小与细胞”(在他们的属性)。

如果你在其他地方有代码,插入这些图像,那么你需要做到这一点,

 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 

从这里采取