VBA ListBox使用工作表变量添加项目

时间:2019-01-15 10:24:47

标签: vba

我在“开始”工作表中有一个名为“ Listbox1”的ActiveX列表框。 为什么ThisWorkbook.Worksheets("START").ListBox1.AddItem ("a")有效,以及 shStart.ListBox1.AddItem ("b")没有。

我收到此错误:Method or data member not found

Dim tw As Workbook
Dim shStart As Worksheet
Set tw = ThisWorkbook
Set shStart = tw.Worksheets("START")

ThisWorkbook.Worksheets("START").ListBox1.AddItem ("a")
shStart.ListBox1.AddItem ("b")

1 个答案:

答案 0 :(得分:1)

Worksheet类是non-extensible。这意味着,如果您声明类型为Worksheet的变量,则只能调用以Worksheet类型预先声明的方法和属性。除此之外,您无法访问在工作表上定义的任何方法或属性。

您的选择是:

  • 将变量声明为精确工作表的类型(使用其codename

    Dim shStart as Sheet1
    
  • 将变量声明为Object

  • 继续使用Worksheets("START")语法(它也会返回Object,这也是为什么它也可以工作的原因。)