在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