我到处都搜索过了,但没有找到任何关于将不同行和列的多个单元格复制到另一张表的一行的内容。
例如,将工作表 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 行以保持整洁。