我试图通过行循环来每次读取一个单元格,然后写入另一张表格。
Sub boucle_for()
Dim col As Integer
Dim lig As Integer
Dim rr As Integer
Dim cc As Integer
col = 4
lig = 3
rr = 15
cc = 24
For i = 0 To 33
Range("R[" & col & "]C[" & lig & "]").Formula = "=AVG('Weekly Changes'!R[" & rr & "]C[" & cc & "]:R[" & (rr + 1) & "]C[" & (cc + 1) & "])"
rr = rr + 14
lig = lig + 1
Next
End Sub
我的目标是动态引用单元格,但VBA脚本说这是一个错误。我已经习惯了Java和JavaScript数组,但我在这方面失败了。
我在哪里弄错了?
答案 0 :(得分:1)
我总是喜欢使用Cells类(使用R1C1引用)方法,如下所示:
Cells(rr, col).Formula = ...
如果您需要多单元格范围,可以执行以下操作:
Range(Cells(rr, col), Cells(rx, colx)).Formula = ...
但你也可以这样做:
Range("A5").Formula = ...
有些人会将列号转换为字母。我觉得它很俗气,但看起来像这样:
Range(MyNumberToLetterFunction(col) & rr).Formula = ...
或多个细胞范围:
Range("A5:B6").Formula = ...
顺便说一句,最好使用工作表参考来限定您的范围。它似乎与循环非常有效,就像你正在做的那样:
Sheet1.Cells(rr, col).Value = ...
或
Sheets("My Awesome Stuff").Cells(rr, col).Value = ...