就像标题说的那样。当它到达指定的行时,我总是得到运行时错误91。
这可能是一些显而易见的东西,但我没有看到它。任何帮助都将不胜感激。这里是我的(缩写)代码:
Sub wat()
Dim EHSBook As Workbook
Dim Err as Boolean
Dim sheetRecord As Worksheet
Dim sheetAmList(7) As Worksheet
Dim sheetPmList(7) As Worksheet
Dim sheetAmListCnt As Integer
Dim sheetPmListCnt As Integer
sheetAmListCnt = 1
sheetPmListCnt = 1
Call OpenEhsFile(EHSBook, Err)
If Err = True Then Exit Sub
'get which sheets we need to total up
For Each sheetRecord In EHSBook.Sheets
If IsDate(sheetRecord.Cells(1, 3).Value) Then
If Right(sheetRecord.name, 4) = "(AM)" Then
' next line throws error 91
sheetAmList(sheetAmListCnt) = sheetRecord
sheetAmListCnt = sheetAmListCnt + 1
ElseIf Right(sheetRecord.name, 4) = "(PM)" Then
' next line throws error 91
sheetPmList(sheetPmListCnt) = sheetRecord
sheetPmListCnt = sheetPmListCnt + 1
End If
End If
Next sheetRecord
End Sub
字符串
我试过了:我确保我正确地声明了我的数组,并且EHSBook被正确地分配了。
我期望:我期望代码添加记录(工作表),我需要处理的数组的基础上,如果它是上午或下午记录。
我得到:我得到一个弹出窗口,说运行时错误:'91':对象变量或与块变量未设置。
我保存到的数组是在同一个Sub中声明的,计数器表AmListCnt是在For Each之前分配的,For Each应该使用引用,所以不需要With.所以我很困惑。
1条答案
按热度按时间f8rj6qna1#
返回数据结构对象
To
关键字调整它们的大小。As Worksheet
,则循环遍历Worksheets
(而不是Sheets
)集合。Set
关键字。快速修复(数组)
字符串
结果如下:
由于不区分大小写,列表很短。请参阅 * 改进 * 中的处理方式。
型
的数据
一个改进(集合)
为什么?为什么?
.Add
。Set
关键字。型
结果如下:
型