我正在尝试优化文书工作,但我不知道如何编译两个单独的宏来根据我的需要工作。
在 Excel 工作簿上,我有两张表:
我需要创建一个宏,以便它从列表中获取“产品名称”(例如
Sheet2!A1
到Sheet1!N10
)并将可互换的数字从1更改为“数量”(例如Sheet2!B1
到Sheet1!R10
)并打印所有列表中生成的所有副本。
例如:
Sheet2!A1
单元格包含产品“ALFA”,相应的数量为“3”(单元格 B1)。下一行 - A2 包含“BETA”,B2 包含 2 个(作为数量)
因此打印输出将是 5 页“ALFA - 1”、“ALFA - 2”、“ALFA - 3”、“BETA - 1”、“BETA - 2”,然后是列表中的下一个值。
我找到了一个代码(在互联网上的某个地方),可以使用下面的代码打印具有可互换编号的份数:
Sub Technologiniu_korteliu_kiekis()
Dim CopiesCount As Long
Dim copynumber As Long
CopiesCount = Application.InputBox("How many copies do you want?", Type:=1)
'Now the program wants you to input how many pages you like to print.
'You can input 100 here.
For copynumber = 1 To CopiesCount
With ActiveSheet
.Range("L7").Value = copynumber 'I assume your invoice number is in cell E1.
.PrintOut 'Print the sheet
End With
Next copynumber
End Sub
我找到了解决办法。我的宏正在创建重复项。虽然这不是我需要的。
Sub Macro()
Dim i As Long, LastRow As Long
LastRow = Worksheets("Sheet2").Range("C65536").End(xlUp).Row
For i = 8 To LastRow
Worksheets("Sheet1").Range("G6").Value = Worksheets("Sheet2").Range("C" & i).Value
Worksheets("Sheet1").Range("J7").Value = Worksheets("Sheet2").Range("D" & i).Value
Dim CopiesCount As Long
Dim copynumber As Long
CopiesCount = Worksheets("Sheet2").Range("E" & i).Value
If Not Worksheets("Sheet2").Range("B" & i).Value = 1 Then
For copynumber = 1 To CopiesCount
With Worksheets("Sheet1")
.Range("L7").Value = copynumber
.PrintOut
End With
Next copynumber
End If
Next i
End Sub
您能否定义每一行,以便我可以使用它而无需查看所有编码细节?