VBA:从函数返回工作表对象引用

use*_*094 8 vba module reference function

如何返回工作表对象参考?我一直在浏览各种谷歌搜索结果.

例如,我有一个像这样的功能代码.wSheet已经暗淡了:

Public wSheet As Worksheet
...
Set wSheet = ActiveWorkbook.Worksheets("ExampleSheet")
wSheet.Range("A1").Value = "Hello"
Run Code Online (Sandbox Code Playgroud)

但是,我希望wSheet现在调用一个模块来提供正确的引用.像这样的东西:

Public wSheet As Worksheet
...
Set wSheet = myModule.get_ExampleSheet
wSheet.Range("A1").Value = "Hello"
Run Code Online (Sandbox Code Playgroud)

然后在模块myModule中有一个函数

Function get_ExampleSheet() As Worksheets
    get_ExampleSheet = ActiveWorkbook.Worksheets("ExampleSheet")
End Function
Run Code Online (Sandbox Code Playgroud)

我尝试的一切都给了我各种运行时错误.反正有没有让这个工作?

谢谢,提前!

end*_*and 15

您正在函数中返回错误类型的对象.

Function get_ExampleSheet() As Worksheets
    get_ExampleSheet = ActiveWorkbook.Worksheets("ExampleSheet")
End Function
Run Code Online (Sandbox Code Playgroud)

这目前有几个错误.

Function get_ExampleSheet() As Worksheet
   Set get_ExampleSheet = ActiveWorkbook.Sheets("Sheet1")
End Function
Run Code Online (Sandbox Code Playgroud)

注意我改变了:

  1. 返回类型为Worksheet(您尝试设置变量,wSheet,类型WorksheetWorksheets类型变量)
  2. 添加set关键字
  3. 更改为.Worksheets.Sheets返回您感兴趣的特定工作表