使用excel VBA输出多个pdf文件
简化数据如下:使用excel VBA输出多个pdf文件,vba,loops,pdf,Vba,Loops,Pdf,简化数据如下: Client Order Product PRICE A 1 XXX 100 B 2 XXX 101 A 3 XXX 103 ... C 30 XXX 100 A 31 XXX 99 a = 1 b = 3 w = Worksheets("Daily"
Client Order Product PRICE
A 1 XXX 100
B 2 XXX 101
A 3 XXX 103
...
C 30 XXX 100
A 31 XXX 99
a = 1
b = 3
w = Worksheets("Daily").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("Client_pdf").Cells(1, 1) = "A Client"
Worksheets("Client_pdf").Cells(2, 1) = "Address of A Client"
For i = 1 To w
If Worksheets("Daily").Cells(i, 1).Value = "A" Then
Worksheets("Client_pdf").Cells(b, 1) = a
Worksheets("Daily").Range("A" & i & ":" & "D" & i).Copy
Worksheets("Client_pdf").Range("A" & b & ":" & "D" & b).PasteSpecial Paste:=xlPasteFormats
Worksheets("Client_pdf").Range("A" & b & ":" & "D" & b).PasteSpecial Paste:=xlPasteValues
a = a + 1
b = b + 1
End If
Next
我尝试以PDF格式输出一个在PDF文件中有10个订单的客户端。因此,如果一个客户有21个订单,将输出3个PDF文件,其中2个PDF包括10个订单,最后一个只有一个订单。现在,代码使用如下:
Client Order Product PRICE
A 1 XXX 100
B 2 XXX 101
A 3 XXX 103
...
C 30 XXX 100
A 31 XXX 99
a = 1
b = 3
w = Worksheets("Daily").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("Client_pdf").Cells(1, 1) = "A Client"
Worksheets("Client_pdf").Cells(2, 1) = "Address of A Client"
For i = 1 To w
If Worksheets("Daily").Cells(i, 1).Value = "A" Then
Worksheets("Client_pdf").Cells(b, 1) = a
Worksheets("Daily").Range("A" & i & ":" & "D" & i).Copy
Worksheets("Client_pdf").Range("A" & b & ":" & "D" & b).PasteSpecial Paste:=xlPasteFormats
Worksheets("Client_pdf").Range("A" & b & ":" & "D" & b).PasteSpecial Paste:=xlPasteValues
a = a + 1
b = b + 1
End If
Next
通过使用上面的代码,它将为一个客户端输出一个包含21个订单的pdf。
但是,我希望第二个PDF在前两行中包含“一个客户”和“一个客户的地址”,在接下来的行中包含顺序11-20。在第三个PDF文件中,前两行和第21行包含“客户”和“客户地址”
谢谢 你的“简化数据”没有说太多,相反,你尝试在最后解释你需要的。至少对我来说。。。它应该显示客户A的至少11个“订单”。文件是否已排序?客户的所有订单是否连续出现在工作表上?“前两行”也应该是什么?从这个角度来看,我们看不到任何东西,即使我们想要帮助您(至少是我),我们也无法做到这一点,因为我们不了解初始数据的外观以及它必须如何处理。您可能会编辑您的问题并添加两张图片,其中一张是现有情况与需要的情况。