我尝试使用下面的函数来提取某些变量的位置,以便在活动公式中的另一个工作表上进行引用,但有时只需要该值。如果它给了我范围我可以使用相同的功能。 intersect方法表示它为您提供了一个范围,但在一个位置上它只返回值。
Function TablePull(tableName As String, columnName As String) As Variant
Dim testVar As Variant
Dim lo As Excel.ListObject
Dim ws As Excel.Worksheet
Set ws = ThisWorkbook.Worksheets(ThisWorkbook.Sheets(strWorkingSheetName).Index - 1)
Set lo = ws.ListObjects(tableName)
TablePull = Application.Intersect(lo.ListRows(1).Range, lo.ListColumns(columnName).Range)
End Function
答案 0 :(得分:2)
将您的函数声明为 Range 而不是 Variant
Function TablePull(tableName As String, columnName As String) As Range
使用Set
设置TablePull
范围
Set TablePull = Application.Intersect(lo.ListRows(1).Range, lo.ListColumns(columnName).Range)
我建议永远不要使用 Variant ,除非你真的需要。 Variant 是最糟糕的类型,在大多数情况下,有一个比使用 Variant 更好的解决方案。然而,在某些情况下,您需要使用 Variant 。