gpt4 book ai didi

VBA:复制和粘贴数据行的最快方法

转载 作者:行者123 更新时间:2023-12-03 02:32:29 26 4
gpt4 key购买 nike

我想知道是否有一种更快的方法将数据从工作表的一列复制并粘贴到工作表的另一列。这是我所拥有的示例代码,它运行缓慢,因为我要复制的每一列都有超过 10000 行数据要复制。我从中复制的数据没有固定范围。

For i = 2 To lastrow
ws.Cells(i, "AG") = bl.Cells(i, "F")
ws.Cells(i, "AH") = bl.Cells(i, "G")
ws.Cells(i, "AB") = bl.Cells(i, "N")
ws.Cells(i, "AC") = bl.Cells(i, "R")
ws.Cells(i, "BF") = bl.Cells(i, "S")
ws.Cells(i, "AA") = bl.Cells(i, "U")
ws.Cells(i, "BA") = bl.Cells(i, "X")
ws.Cells(i, "BQ") = bl.Cells(i, "AA")
ws.Cells(i, "B") = bl.Cells(i, "AB")
ws.Cells(i, "A") = bl.Cells(i, "AD")
ws.Cells(i, "BW") = bl.Cells(i, "AK")
ws.Cells(i, "BH") = bl.Cells(i, "AL")
ws.Cells(i, "BR") = bl.Cells(i, "AM")
ws.Cells(i, "AL") = bl.Cells(i, "AP")
ws.Cells(i, "AP") = bl.Cells(i, "BA")
ws.Cells(i, "AQ") = bl.Cells(i, "BB")
ws.Cells(i, "AU") = bl.Cells(i, "BC")
ws.Cells(i, "AO") = bl.Cells(i, "BK")
ws.Cells(i, "AT") = bl.Cells(i, "BO")
Next i

最佳答案

复制整列而不是单元格!

ws.Range("AG2:AH" & lastrow) = bl.Range("F2:G" & lastrow) '2 cols at once here
ws.Range("AB2:AB" & lastrow) = bl.Range("N2:N" & lastrow) '.Value is implicit

(等等..)应该快 1000 倍。

VBA 和 Excel 之间的数据交换对于 CPU 来说非常昂贵。因此,传输大块的效率更高。

关于VBA:复制和粘贴数据行的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41920628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com