首页 > 解决方案 > VBA ListBox使用工作表变量添加项目

问题描述

我在“开始”工作表中有一个名为“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")

标签: vba

解决方案


该类Worksheet不可扩展的。这意味着如果你声明了一个 type 的变量Worksheet,你只能调用该Worksheet类型预先声明的方法和属性。除此之外,您无法访问您在工作表上定义的任何方法或属性。

您的选择是:

  • 将变量声明为确切工作表的类型(使用其代号

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

  • 继续使用Worksheets("START")语法(它也返回一个Object,这就是它也有效的原因)。

推荐阅读