当谈到VBA时,我非常习惯于初学者,我无法弄清楚如何更新我的宏。VBA宏从一张纸复制数据并粘贴到另一张(在某些条件下)
通常从几片(所述特定的一个被称为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列中,您并不总是只是“卖”或“买”。你也可以看到“卖出来掩盖”等等,但逻辑仍然是一样的。
我将不胜感激任何帮助。 谢谢。
我担心你声明了一个名为'lastrow'的变量,然后为一个名为'Lastrowss'的不同变量赋值,然后为你的循环使用另一个名为'lastrows'的变量。请在每个代码模块的开头添加“Option Explicit”。 – YowE3K
这是我的错字。应该是:对于i = 2对于拉斯特罗斯 – DrBeton
我仍然担心你声明一个名为'lastrow'的变量,然后使用一个名为'lastrowss'的变量。在每个代码模块的开始处添加'Option Explicit',您可以避免这种类型的拼写错误。 – YowE3K