需要find一种方法来通过其他列循环这个macros

我已经写了一个macros来返回一个单元格中的特定值基于其他两个单元格的连接值的查找。 这个macros可能需要在30列的每一列中运行。 有没有一种方法可以循环使用,以便我不必input30个变体?

以下是我所引用的代码部分:

Cells.Select ActiveWorkbook.Worksheets("Vendor Request").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Vendor Request").Sort.SortFields.Add Key:=Range( _ "F2:F" & LR2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Vendor Request").Sort .SetRange Range("A1:BK" & LR2) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With If Cells(2, 6).Value <> "" Then Range("G2").Select ActiveCell.FormulaR1C1 = _ "=CONCATENATE(""Example: "",IF(ISNA(VLOOKUP(CONCATENATE(RC[-4],""; "",RC[-1]),'Sample Data'!C[-6]:C[-2],5,FALSE)),"""",VLOOKUP(CONCATENATE(RC[-4],""; "",RC[-1]),'Sample Data'!C[-6]:C[-2],5,FALSE)))" If Cells(3, 6).Value <> "" Then Range("G2").Select Selection.AutoFill Destination:=Range("G2:G" & Range("F" & Rows.Count).End(xlUp).Row) Else End If Columns("G:G").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Else End If 

提前致谢!

编辑:最后得到它的工作。 这是我最后的结果:

 Cells.Select ActiveWorkbook.Worksheets("Vendor Request").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Vendor Request").Sort.SortFields.Add Key:=Columns( _ j - 1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Vendor Request").Sort .SetRange Range("A1:BK" & LR2) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Dim LRj As Long With Sheets("Vendor Request") LRj = .Cells(.Rows.Count, j - 1).End(xlUp).Row End With If Cells(2, j - 1).Value <> "" Then Cells(2, j).Select ActiveCell.FormulaR1C1 = _ "=CONCATENATE(""Example: "",IF(ISNA(VLOOKUP(CONCATENATE(c3,""; "",C[-1]),'Sample Data'!c1:c6,5,FALSE)),"""",VLOOKUP(CONCATENATE(c3,""; "",C[-1]),'Sample Data'!c1:c6,5,FALSE)))" If Cells(3, j - 1).Value <> "" Then Cells(2, j).Select Selection.AutoFill Destination:=Range(Cells(2, j), Cells(LRj, j)) Else End If Columns(j).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Else End If Next j 

Range("G2:G …到Range("G2:AKColumns("G:G"Columns("G:AK"

Range(Cells(2,j),Cells(...,j))