A.K*_*K.C 5 excel vba excel-vba
我有一个非常大的电子表格,我想做计算.为了加快速度,我想在vba中完成它们.我有一个基本的vba知识,所以开始我试图编写代码,只需复制A列中的单元格并将它们分配给一个数组,然后将所有值粘贴回另一列D.我定义了numrows来获取数字行数下降,因为这将逐月变化.我想如果我可以让它工作,我可以从那里建立它 - 但不幸的是我不能让它工作.如果有人能告诉我我做错了什么,我真的很感激.
我已经尝试了很多这方面的变化 - 目前我得到错误运行时错误'424'对象需要所以我认为数组是空的.
Option Explicit
Option Compare Text
Option Base 1
Sub Macro1()
Dim numRows As Long
Dim numCols As Integer
numCols = 1
Dim RowCounter As Long
Dim ColCounter As Integer
Dim SumCols() As Variant
numRows = Cells(Rows.Count, "A").End(xlUp).Row
ReDim SumCols(numRows, numCols)
Dim tempSumCols As Variant
tempSumCols = Range("A2", Cells(numRows, 1))
For RowCounter = 1 To numRows
For ColCounter = 1 To numCols
SumCols(RowCounter, ColCounter) = tempSumCols(RowCounter, ColCounter).Value
Next ColCounter
Next RowCounter
Range("D2", Cells(numRows, "D")) = SumCols
End Sub
Run Code Online (Sandbox Code Playgroud)
小智 0
从范围填充数组的最简单方法:
您现在可以使用迭代数组
对于 i = lBound(数组) 到 uBound(数组)
或者
对于数组中的每个 e
子宏1()
点心作为变体
变体
SumCols = Range(Range("A2"), Range("A" & Rows.Count).End(xlUp)).Value
对于 SumCols 中的每个 e
下一个
范围(“D2”)。调整大小(UBound(SumCols,1),UBound(SumCols,2))= SumCols
结束子