2

大家早上好!

我有一个关于我的 VBA 代码的问题。我实际上只是想创建一个循环来打印基于相同背景模板(在称为 AFFIDAVIT CREATOR 的工作表中)的 PDF,替换 INPUT 工作表中的一些 4 个框(标签和图像)。

到目前为止,循环工作正常。唯一的问题:它根据给定的名称(变量 r)生成 PDF 文件,但在导出为 PDF 后刷新工作表。结果:具有不同名称的多个文件,但它们都显示相同:(

有任何想法吗?

那是我的代码:

Private Sub TryMe()
Dim r As Long
Dim strCap As String
Dim strCap2 As String
r = 4

    Do Until Sheets("INPUT").Cells(r, 3).Value = ""

    strCap = Sheets("INPUT").Cells(r, 3).Value
    Sheets("AFFIDAVIT CREATOR").Label1.Caption = strCap

strCap2 = Sheets("INPUT").Cells(r, 5).Value
Sheets("AFFIDAVIT CREATOR").Label2.Caption = strCap2

If Sheets("INPUT").Cells(r, 4) = "OE" Then
    Sheets("AFFIDAVIT CREATOR").Image1.Picture = LoadPicture(ActiveWorkbook.Path & "\OE_Logo.jpg")
Else
    Sheets("AFFIDAVIT CREATOR").Image1.Picture = LoadPicture(ActiveWorkbook.Path & "\SF_Logo.jpg")
End If

If Sheets("INPUT").Cells(r, 6) = "OE" Then
    Sheets("AFFIDAVIT CREATOR").Image2.Picture = LoadPicture(ActiveWorkbook.Path & "\OE_Logo.jpg")
Else
    Sheets("AFFIDAVIT CREATOR").Image2.Picture = LoadPicture(ActiveWorkbook.Path & "\SF_Logo.jpg")
End If


ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, From:=1, To:=1, FileName:=ThisWorkbook.Path & "\" & Sheets("INPUT").Cells(r, 3) & ".pdf" _
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, OpenAfterPublish:=False

Sheets("AFFIDAVIT CREATOR").Calculate

r = r + 1

Loop

End Sub
4

1 回答 1

5

根据评论,如果Stop以您需要的方式工作。3 秒加载您的图片,您可以尝试使用wait workaround如下所示的图片:

Dim Start As Single
Start = Timer
'wait 5 sec...
Do While Start + 5 > Timer
    DoEvents
Loop

添加之前的代码.ExportAsFixedFormat。上面我将等待时间设置为 5 秒。一些测试后你可以改变它。

于 2013-07-04T10:15:12.783 回答