VBA ListBox добавить элемент с помощью переменной листа - PullRequest
0 голосов
/ 15 января 2019

У меня есть ActiveX ListBox с именем «Listbox1» на рабочем листе «Пуск». Почему 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 голосов
/ 15 января 2019

Worksheet класс не расширяемый .Это означает, что если вы объявляете переменную типа Worksheet, вы можете вызывать только те методы и свойства, которые предварительно объявлены с типом Worksheet.Вы не можете получить доступ к каким-либо методам или свойствам, которые вы определили на листе в дополнение к этому.

Ваши варианты:

  • Объявите переменную как тип точного листа(используя его кодовое имя )

    Dim shStart as Sheet1
    
  • Объявите переменную как Object

  • Продолжайте использовать синтаксис Worksheets("START") (он также возвращает Object, поэтому он также работает).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...