[英]Add counter to for each loop
我一直无法弄清楚如何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
每次您总是将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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.