2014-01-05 100 views

回答

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)任何细胞。此方法的优点是,当您更改相关单元格中的数据时(E3,F26Table5),函数将重新计算单元格中的值。

方式二:

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时,应该调用此宏。

+0

,如何让VBA代码在单元格F27中运行?感谢您的快速响应:) – user3133588

+0

我已经更新了我的答案 –

+0

第一个很好 - 但它不会自动更新,我必须手动更新单元格F27。单元格F27改变后,单元格F27可能会自动工作吗? :) – user3133588