Динамическое добавление CheckBoxes – Ошибка выполнения 424

Привет, я скопировал / вставлял код из TheEngineer-answer – я немного изменил код, поэтому он собирает данные из массива вместо рабочего листа. Я продолжаю получать RuneTime Error 424 , и когда я читаю MS-справку об Error 424 он говорит, что я должен включить Microsoft DAO 3.5 Object Library моем Excel только 3.6 . Думаю, новая версия? Но я все еще получаю сообщение об ошибке. Кто-нибудь может мне помочь??

Это код:

 Option Explicit Private Sub UserForm_Initialize() Dim LastColumn As Long Dim i As Long Dim chkBox As MSForms.CheckBox Call test ' Here i run array code (The array is filled with data) TestArr = UniqueProvisionArray LastColumn = UBound(TestArr) For i = 0 To LastColumn Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i) chkBox.Caption = TestArr(i).Value chkBox.Left = 5 chkBox.Top = 5 + ((i - 1) * 20) Next i End Sub 

Вы получаете эту ошибку из-за строки chkBox.Caption = TestArr(i).Value . Это неверный способ извлечения данных из массива.

Вот пример кода, чтобы он работал.

 Private Sub UserForm_Initialize() Dim LastColumn As Long Dim i As Long Dim chkBox As MSForms.CheckBox Dim TestArr(1) TestArr(0) = 1 TestArr(1) = 2 LastColumn = UBound(TestArr) For i = 0 To LastColumn Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i) chkBox.Caption = TestArr(i) chkBox.Left = 5 chkBox.Top = 5 + ((i - 1) * 20) Next i End Sub 

Еще одна вещь …

Вы можете изменить chkBox.Top = 5 + ((i - 1) * 20) на chkBox.Top = 5 + (i * 20) ваш первый флажок не будет виден;)

  • Как вывести массив в таблицу в Excel VBA?
  • Как получить значение ячейки во всех листах
  • Подсчитайте количество конкретных слов в списке
  • Как создать функцию VBA, чтобы найти максимум каждой строки в массиве
  • Большие объемы данных в лист с использованием массива
  • Формула и комбинация Excel Array
  • Добавление массива VBA в новую базу данных доступа
  • Excel: как проверить повторяющиеся числа внутри ячейки
  • Два размерных массива с диапазоном Excel
  • Почему эта функция не возвращает массив с данными?
  • Excel SUM IF с несколькими критериями массива
  • Давайте будем гением компьютера.