我的宏从多张表中复制数据(特定的一张称为SS)并将其粘贴到另一张(MainSheet):
Dim lastrow As Long
'(...)
Lastrowss = Sheets (“SS”).Range(“A1”).End(xlDown).Row
'(...)
For i = 2 To lastrows
' (...)
Sheets("MainSheet").Cells(j, 7).Value = Sheets("SS").Cells(i, 7).Value 'Rec Amount
Sheets("MainSheet").Cells(j, 9).Value = Sheets("SS").Cells(i, 9).Value * -1 'Paid Amount
此宏仅适用于销售。 购买以相反的方式反映出来。
宏应该复制第7列和第9列中的数据,并且只有在D列中有“买”时才将其粘贴到第9列和第7列(而不是第7和第9列)。如果存在“卖出”,则数据应保留同样的。
在D栏中,您并不总是只是“卖”或“买”。你也可以看到“卖到掩护”等。但逻辑仍然是一样的。
答案 0 :(得分:2)
If Sheets("SS").Cells(i, 4).Value <> "buy" Then ' <-- add this test
Sheets("MainSheet").Cells(j, 7).Value = Sheets("SS").Cells(i, 7).Value 'Rec Amount
Sheets("MainSheet").Cells(j, 9).Value = Sheets("SS").Cells(i, 9).Value * -1 'Paid Amount
Else ' <-- here we inverse the two columns
Sheets("MainSheet").Cells(j, 7).Value = Sheets("SS").Cells(i, 9).Value 'Rec Amount
Sheets("MainSheet").Cells(j, 9).Value = Sheets("SS").Cells(i, 7).Value * -1 'Paid Amount
End If
答案 1 :(得分:0)
谢谢大家的帮助。 我稍微更新了代码:
If Left(Sheets("SS").Cells(i, 4).Value, 3) <> "Buy" Then
Sheets("MainSheet").Cells(j, 7).Value = Sheets("SS").Cells(i, 7).Value 'Rec Amount
Sheets("MainSheet").Cells(j, 9).Value = Sheets("SS").Cells(i, 9).Value * -1 'Paid Amount
Else
Sheets("MainSheet").Cells(j, 7).Value = Sheets("SS").Cells(i, 9).Value 'Rec Amount
Sheets("MainSheet").Cells(j, 9).Value = Sheets("SS").Cells(i, 7).Value * -1 'Paid Amount
End If
似乎现在正在工作。