我一直无法弄清楚如何在下面的for each
循环中添加一个计数器,这样当整个公式列完成后,循环移动到下一列。所有计算都正确发生,但都在同一列中。感谢您的任何建议。
Sub Test()
Dim SrchRng1 As Range, cell1 As Range
Dim SrchRng2 As Range, cell2 As Range
Dim lr As Long
lr = Sheets("sheet1").Cells(Rows.count, 2).End(xlUp).Row
Set SrchRng1 = Sheets("sheet1").Range("B3:B95")
Dim lc As Long
lc = Sheets("sheet2").Cells(3, Columns.count).End(xlToLeft).Column
Set SrchRng2 = Sheets("sheet2").Range("A3:AC3")
Dim lrr As Long
lrr = Sheets("sheet2").Cells(Rows.count, 2).End(xlUp).Row
Dim c As Long
c = 0
For Each cell1 In SrchRng1
For Each cell2 In SrchRng2
If cell1.Value = cell2.Value Then
c = 31
For r = 4 To 100
Cells(r, c).FormulaR1C1 = "=sheet1!" & cell1.Offset(, 1).Address(ReferenceStyle:=xlR1C1) & "*" & cell2.Offset(1, 0).Address(ReferenceStyle:=xlR1C1) & ""
Next r
c = c + 1
End If
Next cell2
Next cell1
Application.DisplayAlerts = True
End Sub
答案 0 :(得分:0)
您每次都要将c重设为31。将c = 31移出内循环,直到第一个for语句。像这样:
For Each cell1 In SrchRng1
c = 31
For Each cell2 In SrchRng2
If cell1.Value = cell2.Value Then
For r = 4 To 100
Cells(r, c).FormulaR1C1 = "=sheet1!" & cell1.Offset(, 1).Address(ReferenceStyle:=xlR1C1) & "*" & cell2.Offset(1, 0).Address(ReferenceStyle:=xlR1C1) & ""
Next r
c = c + 1
End If
Next cell2
Next cell1