Ошибка выполнения VBA 1004 при использовании цикла For - PullRequest
1 голос
/ 08 апреля 2020

Я создаю пользовательскую форму для Excel и создаю sh -обработанный VBA, пока я делаю это. Я решил почти все свои проблемы, но теперь я застрял на этом, и ни один из существующих ответов StackOverflow не помог мне:

У меня есть лист (Sheet8), который действует как база данных формы сохраняет и извлекает данные из, и у меня есть список (lstIncomeView), который должен заполняться значениями из некоторых столбцов. Примером может быть:

Row 1: Category1 | Category 2 | Etc.
Row 2: Value 1 | Value 2 | Etc.
Row 3: Value 3 | Value 4 | Etc.

Где выводится список:

Category 1 | Value 1
Category 2 | Value 2
Category Etc | Value Etc

И мой существующий код в UserForm_Initialize ()

iRow = Sheet8.Cells(Rows.Count, 1).End(xlUp).Row   
...
'Set IncomeView and ExpenseView lists
Me.lstIncomeView.ColumnCount = 2
iCntI = 0
Me.lstExpenseView.ColumnCount = 2
iCntE = 0
...
GetValues (iRow)

, где iRow является опубликованным c переменная, которая изменяется в другом месте, чтобы изменить, какая строка выбрана в данный момент. iCntI и iCntE также являются публикуемыми c переменными, которые используются в других местах для различных функций.

В GetValues ​​у меня есть следующий код, в который выдается ошибка 1004:

Private Sub GetValues(iRef As Integer)
...
Dim iEntryI As Range
For Each iEntryI In Range(Sheet8.Cells(iRef, 14), Sheet8.Cells(iRef, 18))
    If iEntryI > 0 Then
        Me.lstIncomeView.AddItem
        Me.lstIncomeView.List(iCntI, 0) = Sheet8.Cells(0, iEntryI.Column)
        Me.lstIncomeView.List(iCntI, 1) = iEntryI.Value
        iCntI = iCntI + 1
    Else: End If
Next iEntryI
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...