我用客户数据填写了一个名为“信息”的工作表。然后我手动将相同的客户数据复制到另一个工作表“订单”。“订单”包含发票编号和如下结构:
A D E F H J
INVOICE FIRSTNAME LASTNAME DESCRIPTION POSTCODE EMAIL
1 1234 Fred Smith Red widget AR225H fred@smith.com
2 1235 Bill Jones Blue widget EH66VT bill@jones.com
3 1236
4 1237
我希望创建一个宏来将我的数据从“信息”逐个单元格地复制到“订单”。我可以这样做,但我需要一个条件注释,说明“如果订单列 D 为空白,则选择第 3 行将数据复制到”。如果我没有这个,那么我会覆盖最后一个订单行。
请注意,每次“信息”表上的客户数据都会更改,这就是我手动复制它的原因。
我目前使用这个公式将下一个可用的发票编号拉入我的信息表:
=INDEX(订单!$A:$A,COUNTA(订单!$D:$D)+1)
它允许我在“信息”表上有一个单元格(比如 F3),该单元格已经包含正确的发票编号以分配给当前的客户数据。使用它,我可以将条件重写为“将信息粘贴到 Info!F3 出现在 Orders! 列 A 中的行中”。
如果有帮助,这里是宏:
Sub Macro2()
'
' Macro2 Macro
'
'
Range("B6").Select
Selection.Copy
Sheets("Orders").Select
Range("C735").Select
ActiveSheet.Paste
Sheets("Info").Select
Range("B7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Orders").Select
Range("D735").Select
ActiveSheet.Paste
Sheets("Info").Select
Range("B8").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Info").Select
Range("B11").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Orders").Select
Range("E735").Select
ActiveSheet.Paste
Sheets("Info").Select
Range("B12").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Orders").Select
Range("F735").Select
ActiveSheet.Paste
Sheets("Info").Select
Range("B15").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Orders").Select
Range("G735").Select
ActiveSheet.Paste
Sheets("Info").Select
ActiveWindow.SmallScroll Down:=-6
Range("B3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Orders").Select
Range("B735").Select
ActiveSheet.Paste
End Sub
===================
也许这个问题的信息太多了?在最简单的形式中,我只需要根据单元格的内容选择一行,然后通过宏将信息粘贴到该行。
===================
更新 - 这是“信息”表布局,请注意并非所有行都与“订单”表中的列匹配:
A B C
Invoice number: 1236
Peter
Parker
12
Overflow Road
Stacktown
BB338J
0121 345 6789
0777 789 789
peter@spidermail.com
Order description: Red widget