VBA Excel:如何在VBA中使用VLookup和IF?

时间:2014-01-05 14:38:53

标签: excel vba excel-vba excel-formula

如何在VBA中执行此操作?

IF(VLOOKUP(E3;Tabel5;2;0)>=F26;VLOOKUP(E3;Tabel5;4;0)*F26;)

非常感谢!

1 个答案:

答案 0 :(得分:2)

尝试使用此代码:
第一种方式(您可以使用用户定义的函数):

Function getSomeData(E3 As Range, Table5 As Range, F26 As Range)      
   getSomeData = ""

   If WorksheetFunction.VLookup(E3, Table5, 2, 0) >= F26 Then
      getSomeData= WorksheetFunction.VLookup(E3, Table5, 4, 0) * F26
   End If
End Function

您只需在其中键入=getSomeData(E3;Tabel5;F26)即可在任何单元格中调用它。此方法的优点是,当您更改相关单元格(E3F26Table5)中的数据时,函数将重新计算单元格中的值。

第二种方式:

Sub getSomeDataSub()    
   Dim E3 As Range, F26 As Range, Table5 As Range

   Range("F27") = ""
   Set E3 = Range("E3")
   Set Table5 = Range("Table5")
   Set F26 = Range("F26")
   If WorksheetFunction.VLookup(E3, Table5, 2, 0) >= F26 Then
      Range("F27")= WorksheetFunction.VLookup(E3, Table5, 4, 0) * F26
   End If
End Sub

您可以从功能区调用此宏,它会将一些数据放入F27单元格中。在这种方法中,每次更改相关单元格中的值时都应调用此宏,以便在F27中重新计算它。