Excel 使用For循环时发生VBA运行时错误1004

Excel 使用For循环时发生VBA运行时错误1004,excel,vba,Excel,Vba,我正在为Excel构建一个用户表单,并在此过程中对VBA进行速成培训。我已经解决了几乎所有的问题,但现在我被困在这个问题上,现有的StackOverflow答案都没有帮助我: 我有一个工作表(Sheet8),它充当表单保存和提取数据的数据库,我有一个列表框(lstinomeview),应该用一些列中的值填充。例如: Row 1: Category1 | Category 2 | Etc. Row 2: Value 1 | Value 2 | Etc. Row 3: Value 3 | Value

我正在为Excel构建一个用户表单,并在此过程中对VBA进行速成培训。我已经解决了几乎所有的问题,但现在我被困在这个问题上,现有的StackOverflow答案都没有帮助我:

我有一个工作表(Sheet8),它充当表单保存和提取数据的数据库,我有一个列表框(lstinomeview),应该用一些列中的值填充。例如:

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是一个公共变量,它在别处被修改以更改当前选择的行。iCntI和iCntE也是公共变量,可以在其他地方为不同的函数进行操作

在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

Sheet8.Cells(0,iEntryI.Column)
-没有行
0
。这是一个简单的修复方法。谢谢
Sheet8.Cells(0,iEntryI.Column)
-没有行
0
。这很容易修复。谢谢
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