【发布时间】:2015-08-10 20:25:30
【问题描述】:
我有一个 for 循环,在 Excel VBA 中使用 i 作为计数器。我有一个语句顽固地给我错误:
ActiveCell.FormulaR1C1 = "=VLookup(RC[-3],R3C7:R22C15,3)" & " & " & "R[-i]C" & " _
& " & "Vlookup(RC[-3],R3C7:R22C15,4)"
使用-i 显然会导致错误。我尝试添加
negi=-i,然后将 R[-i]C 更改为 R[negi]C,但这并没有解决问题。我在之前的代码中添加了一个 Dim negi as Integer 语句。
编辑:这里有更多代码。我正在使用两个循环。 rownumber 是外循环的计数器,i 是内循环的计数器。 i 的范围从 1 到 20,rownumber 的范围是直到到达第 3 列中的空白行为止。
Range("A25").Select
Dim Rownumber As Integer
Dim i As Integer
Dim negi As Integer
Rownumber = 1
' 这会启动外循环 Do While ActiveCell.Offset(0, 3) "" ' 添加二十行 ActiveCell.Offset(1, 0).Select
Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(19, 5)).Select
Selection.Insert Shift:=xlDown
ActiveCell.Offset(-1, 0).Select
对于 i = 1 到 20
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = i
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Rownumber
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "=Vlookup(RC[-2],R3C7:R22C15,2)"
ActiveCell.Offset(0, 1).Select
negi = -i
ActiveCell.FormulaR1C1 = "=VLookup(RC[-3],R3C7:R22C15,3)" & " & " & _
"R[negi]C" & " & "& "Vlookup(RC[-3],R3C7:R22C15,4)"
....
rownumber = rownumber + 1
next i
我怎样才能在避免错误的同时做到这一点?
【问题讨论】:
-
当它给你一个错误时 i 的值是多少?错误是什么?是否有可能您正在更改的单元格是 A1,而您告诉它转到 A0 [不存在]?
-
提供您正在使用的完整代码示例。我们无法在您的脑海中阅读或直接从您的屏幕上阅读。
-
已编辑添加更多代码以响应 cmets。
-
@Grade 'Eh" Bacon - 当我收到错误时 i 的值为 1。我收到的错误是 Run time error '1004': Application-defined or object-defined error
标签: excel vba for-loop counter