繁体   English   中英

使用工作表变量而不是显式工作表名称,抛出“编译错误:找不到方法或数据成员”

[英]Using worksheet variable instead of explicit sheet name ,throw “Compile error: Method or data member not found”

打开工作簿时,我基本上需要列出一张工作sheet ComboBox
如果我使用变量而不是工作表名称,则会出现此错误:

编译错误:找不到方法或数据成员

Private Sub Workbook_Open()
 
    ThisWorkbook.Sheets(2).Activate
 
    Dim sh As Worksheet
    Set sh = ThisWorkbook.Sheets(2)
 
    sh.ComboBox1.List = sh.Range("D3:D10").Value    'this cause Compile error
 
    ThisWorkbook.Sheets(2).ComboBox1.List = sh.Range("D3:D10").Value  'this works correctly
 
End Sub

那么,如何使用变量sh而不是显式工作表名称?

要么将其声明为Object - 因为工作表 class 没有Combobox1属性,或者使用工作表代号 - 例如Dim sh as Sheet2

Dim sh As Object
Set sh = ThisWorkbook.Sheets(2)
sh.ComboBox1.List = sh.Range("D3:D10").Value

或者:

Dim sh As Sheet2
Set sh = ThisWorkbook.Sheets(2)
sh.ComboBox1.List = sh.Range("D3:D10").Value

或者,将其保留为Worksheet变量并使用其OLEObjects属性按名称引用控件:

Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets(2)

sh.OLEObjects("ComboBox1").Object.List = sh.Range("D3:D10").Value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM