【发布时间】:2016-10-11 10:23:41
【问题描述】:
我希望一次将某些列单元格复制一行(即 A2、C2、G2 然后复制到 A3、C3、G2)粘贴到新工作表上。我看过使用:
Sheets("Sheet1").Range("A1:A10").Copy
但我需要从某些列复制数据。
一些伪代码:
- 遍历每个行
- 如果 A 列中的日期仅限于条件语句,则复制预先确定的列值并复制到新工作表。
- 检查下一行。
我目前有一个从第 1 行迭代到第 50 行的 for 循环。
'Copy Titles
Sheet2.Range("A1, E1, J1, K1, W1:X1, Y1, AA1").Copy
Sheets.Add
ActiveSheet.Range("A1").PasteSpecial
'Copy Data
'If today's date is later than a date in the Column A, copy the cell over.
?
'Fix Column Width
Range("A1:H1").ColumnWidth = 20
'Align Columns
Columns("A:H").HorizontalAlignment = xlCenter
End Sub
我在考虑在每个选择下,我会做同样的陈述,而是复制到新的工作表上?先感谢您!
【问题讨论】:
-
啊哈 - 我不能推荐 不 使用
.Select更多。我强烈建议通读 how to avoid using.Select并将其应用于您的宏。 -
@BruceWayne,实际上只是对我的代码进行了一些编辑!
-
啊,好吧——但是剩下的呢?你说你循环,但我没有看到循环。因此,您从
Sheet2复制这些值,并将这些值粘贴到新工作表中。您要检查 A 列(在哪里?)中的日期,如果是,请将其复制到...新工作表? -
@BruceWayne,为简单起见,我决定暂时取消循环。是的,日期将是我要复制的单元格值之一。因此过程如下:如果 A 列中的日期早于今天的日期,则将日期和所有其他单元格数据复制到新工作表中。我希望这是有道理的。