使用不同excel行批量制作PDF

使用不同excel行批量制作PDF,excel,ms-office,Excel,Ms Office,我不确定这在excel中是否可行,但由于它有很多强大的功能,我认为可能有一种方法。 我有一张包含多行数据的excel表格。 我有表2,它基本上是该数据的可打印版本,但是它只对应于一行数据。 是否有一种方法可以批量保存第2页的PDF,但每行都不同? 例如,A2、B2、C2、D2包含某些数据,这些数据分布在表2的不同部分。我要填充它们并另存为PDF,然后我要A3、B3、C3和D3重新填充字段并覆盖上一个字段,并用新名称(或按顺序)保存PDF。 这可能吗? 我对Access中的VBA有一些经验,对Sw

我不确定这在excel中是否可行,但由于它有很多强大的功能,我认为可能有一种方法。
我有一张包含多行数据的excel表格。
我有表2,它基本上是该数据的可打印版本,但是它只对应于一行数据。
是否有一种方法可以批量保存第2页的PDF,但每行都不同? 例如,A2、B2、C2、D2包含某些数据,这些数据分布在表2的不同部分。我要填充它们并另存为PDF,然后我要A3、B3、C3和D3重新填充字段并覆盖上一个字段,并用新名称(或按顺序)保存PDF。
这可能吗?

我对Access中的VBA有一些经验,对Swift和其他编程语言也有一些经验,所以我知道一些基础知识 在第2页上,将打印区域设置为希望PDF包含的部分

然后,该循环将为第1页a列中的每个ID创建一个PDF:

Private Sub exportToPDFLoop()

    Dim rng As Range
    Dim c As Range

    With ThisWorkbook.Sheets("Sheet1")
        Set rng = Intersect(.Range("A:A"), .UsedRange)
    End With

    For Each c In rng

        'Skip Row 1 (headers)
        If c.Row > 1 Then

            With ThisWorkbook.Sheets("Sheet2")

                .Range("B1").Value = c.Value

                .Calculate

                .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                    ThisWorkbook.Path & "\testfilename_" & CStr(c.Value) & ".pdf", Quality:= _
                    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                    OpenAfterPublish:=True

            End With

        End If

    Next c

End Sub

这是完全可行的,您需要遍历工作表1上的行以填充工作表2,并在每次迭代时导出PDF。你能发布到目前为止的代码并识别出任何抛出错误的行吗?嗨,我该如何将PDF重命名为“Range”B1.value(假设每个PDF都是您的示例上的ID?编辑我的解决方案以跳过第1行,因为那可能包含标题。我想我误解了您的后续问题。在我上面的解决方案中,PDF已通过以下行使用ID重命名:
ThisWorkbook.Path&“\testfilename\uu”&CStr(c.Value)&.PDF”
CStr(c.Value)
是每次迭代B2中的Id。您可以根据需要修改该文件名连接。是的,谢谢。我不知道为什么我认为C是计数器而不是实际值。这是我的错。到目前为止,我正在使用VLOOKUP修改整个工作表,并对一个值进行编辑。但作为一个问题,我是否希望代码是C我需要一个新的rng阵列范围和一个新的c计数器(比如rng2和c2)以及另一个for loop吗?