Vba Excel自定义项引用已关闭工作簿中的表进行查找

Vba Excel自定义项引用已关闭工作簿中的表进行查找,vba,excel,user-defined-functions,Vba,Excel,User Defined Functions,我有一个工作UDF,它根据选定单元格的第一个字母分配用户名。字母表和用户名列表内置于VBA中的函数中,因此更新非常繁琐,因此我正在寻找替代方法 我在工作簿中创建了一个表格,任何人都可以更轻松地更新作业。我已经做了一些努力,但是我无法通过查找表让UDF正确分配用户名。下面是一次尝试,要么我偏离了目标,要么这无法完成。想法 Function Test(Optional Cell As String) As String Dim Name As Variant, Alpha As Variant, A

我有一个工作UDF,它根据选定单元格的第一个字母分配用户名。字母表和用户名列表内置于VBA中的函数中,因此更新非常繁琐,因此我正在寻找替代方法

我在工作簿中创建了一个表格,任何人都可以更轻松地更新作业。我已经做了一些努力,但是我无法通过查找表让UDF正确分配用户名。下面是一次尝试,要么我偏离了目标,要么这无法完成。想法

Function Test(Optional Cell As String) As String
Dim Name As Variant, Alpha As Variant, ATable As Variant
Dim i As Integer

If UCase(Left(Cell, 1)) = "A" Then
    Alpha = UCase(Left(Cell, 2))
Else: Alpha = UCase(Left(Cell, 1))
End If

ATable = Workbook("C:\filepath\").Worksheets("sheet1").ListObjects("ALPHA").DataBodyRange.Value

For i = LBound(ATable) To UBound(ATable)
    If ATable(i, 1) = Alpha Then
        Name = ATable(i, 2)
    End If
Next i

Test = Name

End Function
UDF设计用于任何打开的工作簿,表工作簿将关闭

  • 要从关闭的工作簿中获取数据,您必须打开它-

  • UDF
    无法打开工作簿


  • 工作簿必须打开才能成为
    工作簿
    集合的一部分。如果打开
    工作簿
    工作簿
    宏从外部表格工作簿中检索最新表格,将其复制到隐藏的工作表,不是更容易吗,只需使用一个
    VLOOKUP
    ?这很可能是我必须走的路,但是我试图作为一个UDF来完成,因为这是最终用户的首选。谢谢,我害怕的是什么。谢谢你的澄清。