我试图将某些列从一个工作表复制到另一个工作表(大约15)。
我目前的方法不太理想(我认为)。
Sheets(2).Range("A:A").Value = Sheets(1).Range("C:C").Value
Sheets(2).Range("C:C").Value = Sheets(1).Range("G:G").Value
Sheets(2).Range("D:D").Value = Sheets(1).Range("T:T").Value
它看起来是重复的,更重要的是,它复制了整个列,这会由于加载空行直到工作表的末尾而减慢进程。
我试图找出最好的方法来复制列 * 只是 * 到最后使用的列。
这是我目前的想法,但是第二个工作表中的空单元格被填充了 not available 错误值,这违背了目的。
lastRow = Sheets(1).Range("C" & Sheets(1).Rows.Count).End(xlUp).Row
Sheets(2).Range("A:A").Value = Sheets(1).Range("C1:C" & lastRow).Value
有什么我可能不知道的功能吗?谢谢!
(And是的,这必须在VBA中完成。请询问我的老板😃。)
2条答案
按热度按时间yquaqz181#
由于源范围较小,因此必须调整目标范围的大小。
此外,我喜欢在这样一个sub的开头有Map数组。如果你的老板想复制另一列-或复制一个到另一个目标列,这是更容易处理。
pcww981p2#
简单地说,也许这对你有用:
如果你需要复制更多的列,很容易更新,但是记住,这个代码将总是复制相同数量的单元格,所以如果你复制不同大小的范围,那么它将不起作用。