VBA工作表变量

时间:2019-03-18 16:23:32

标签: excel vba

我似乎无法像预期的那样使用工作表变量。

Function Test()
    Test = Application.ThisCell.Worksheet.Range("A1").Value
End Function

上面的函数按预期工作,在与调用该函数的单元格相同的工作表中返回单元格“ A1”的值。

Function Test()
    Dim ws As Worksheet
    ws = Application.ThisCell.Worksheet
    Test = ws.Range("A1").Value
End Function

此功能在功能上应相同,但会中断并返回#VALUE!代替。

我可以解决前一个问题,但是在需要多次的公式中,我宁愿只获得工作表位置一次。

欢迎提出任何关于为什么我的第二个示例不起作用以及如何解决我的问题的意见。

1 个答案:

答案 0 :(得分:3)

使用Worksheet变量时,必须使用Set

以您的情况Set ws = Thisworkbook.Sheets("NameOfTheSheet")

认为...您正在尝试使用一些变量来设置工作表,我会对名称进行硬编码或使用循环来获取它。