在VBA中使用负循环编号
我有一个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作为Integer语句。
编辑:这是更多的代码。 我正在使用两个循环。 rownumber是外部循环的计数器,而我是内部循环的计数器。 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)<>“”'添加20行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
我怎样才能做到这一点,同时避免错误?
公式构build中有几个错误的string连接。
i
将不得不在引用的string之外,并连接在& " & " &
可能不是你做你想要的。
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3],R3C7:R22C15,3)&" & _ """ & ""&R[-" & i & "]C&"" & ""&" & _ "VLOOKUP(RC[-3],R3C7:R22C15,4)"
请记住,你必须加双引号string内的报价。
你可以做一个从更大值到更低值的循环。 这将从最后使用的单元格开始循环。
lRow = ws.UsedRange.Rows.count Do While lRow > 0 lCol = ws.UsedRange.Columns.count Do While lCol > 0 If InStr(ws.Cells(lRow, lCol), job) Then End If lCol = lCol - 1 Loop lRow = lRow - 1 ws.Range("A" & lRow).Activate Loop