打印 Excel 工作表,其中包含列表中的可互换单元格值和按副本编号的工作表编号

问题描述 投票:0回答:2

我正在尝试优化文书工作,但我不知道如何编译两个单独的宏来根据我的需要工作。

在 Excel 工作簿上,我有两张表:

  • Sheet1 包含订单表格(发票等)。
  • Sheet2 包含产品名称和数量列表。

我需要创建一个宏,以便它从列表中获取“产品名称”(例如

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
vba list excel printing
2个回答
0
投票

我找到了解决办法。我的宏正在创建重复项。虽然这不是我需要的。

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

-1
投票

您能否定义每一行,以便我可以使用它而无需查看所有编码细节?

© www.soinside.com 2019 - 2024. All rights reserved.