将多个单元格(不在范围内)从一张表复制到另一张表

将多个单元格(不在范围内)从一张表复制到另一张表

我到处都搜索过了,但没有找到任何关于将不同行和列的多个单元格复制到另一张表的一行的内容。

例如,将工作表 1 中的单元格 A10、F2、F3 和 F34 复制到工作表 2 中的 A2,然后开始新行。

目的是从发票(第 1 页)中复制某些信息

  • A10——客户
  • F2 - 日期
  • F3 - 发票编号
  • F34——总成本

到另一张表中的一行进行报告(表 2)

当我完成一张新发票时,我希望运行相同的宏将这些单元格复制到工作表 2 中的下一个空白行上。

答案1

此 VBA 宏将执行以下操作:

Public Sub resume_invoice()
    Dim wkb As Workbook
    Dim wks, wks1 As Worksheet
    Set wkb = ThisWorkbook
    Set wks = wkb.Sheets(1)
    Set wks1 = wkb.Sheets(2)
    use_row = wks1.Cells(wks1.Rows.Count, "A").End(xlUp).Row
    use_row = use_row + 1
    If wks.Cells(3, 6) <> wks1.Cells(use_row - 1, 3) Then
        wks1.Cells(use_row, 1) = wks.Cells(10, 1)
        wks1.Cells(use_row, 2) = wks.Cells(2, 6)
        wks1.Cells(use_row, 3) = wks.Cells(3, 6)
        wks1.Cells(use_row, 4) = wks.Cells(34, 6)
        Set wkb = Nothing
        Set wks = Nothing
        Set wks1 = Nothing
    End If
End Sub

转到宏/VBA,在 ThisWorkbook 下插入一个模块并粘贴代码。

为了方便使用,您可以指定一个按钮来执行它。

答案2

为了保持简单并便于调试,请使用辅助单元。

在未使用的行中,例如第 99 行,链接到您的四个源单元格 (A99=A10、B99=F2、C99=F3、D99=F34)。然后宏就很简单了。隐藏第 99 行以保持整洁。

相关内容