VBA中的工作表函数

所以我试图在VBA中创build一个函数,只要我在特定的参数中键入一个函数在Excel中,会给我这些参数的结果。

例如,我有一列中的名字列表; 约翰,简和乔伊….然后在另一列我有与这些名字重合的数字……这里的目标是让用户在任何给定的单元格中键入一个名字的函数,电子表格输出与该名称一起使用的数字。

这就是我所得到的,但是我已经陷入死胡同,因为我不知道该怎么做。

Function NumberOfHits(Name As String) Dim Vegetable As String NumberOfHits = Application.WorksheetFunction.VLookup(Name, Sheets("Hits From Player").Range("B38:D74"), 3) End Function 

对于我来说,这一切都可以正常工作

  1. 我做了function易失性(以便更新)。 您也可以将RAND()与此公式结合使用以获得相同的效果。
  2. 你记得把名字写" "

    =NumberOfHits("mary")

重新调整function:

 Function NumberOfHits(Name As String) Application.Volatile NumberOfHits = Application.WorksheetFunction.VLookup(Name, _ Sheets("Hits From Player").Range("B38:D74"), 3) End Function 

更新:处理没有完全匹配的尝试

 Function NumberOfHits(strName As String) As Variant Dim StrOut Application.Volatile On Error Resume Next StrOut = Application.WorksheetFunction.VLookup(strName, _ Sheets("Hits From Player").Range("B38:D74"), 3, False) On Error GoTo 0 If IsEmpty(StrOut) Then NumberOfHits = CVErr(xlErrNA) Else NumberOfHits = StrOut End If End Function