【发布时间】:2018-08-16 14:34:18
【问题描述】:
我在 Excel 2010 上使用 VBA,但遇到了可怕的 424 错误。但是调试器没有指向任何帮助解决问题的东西。是否有能够缩小问题范围的良好做法?我检查了拼写,所有表格都在正确的工作表上,并且命名的列都在那里。
提前感谢您提供的任何建议。
Sub Finding_Zone()
Dim Data_Table As ListObject
Dim Freq_Table As ListObject
Dim i As Long
Dim x As Long
Dim Zone_Value As Long
Set Data_Table = Sheets("Sheet2").ListObjects("Table2")
Set Freq_Table = Sheets("Sheet2").ListObjects("Table3")
For i = 1 To Range(Data_Table).Rows.Count
Zone_Value = data.Table.DataBodyRange.Cells(i, Data_Table.ListColumns("Zone").Index)
For x = 1 To Len(Zone_Value)
Set Result = Freq_Table.ListColumns("Summary Code").DataBodyRange.Find(Zone_Value)
If Result Is Nothing Then
Zone_Value = Left(Zone_Value, Len(Zone_Value) - 1)
Else
Data_Table.DataBodyRange.Cells(i, Data_Table.ListColumns("Modified Zone").Index) = Zone_Value
End If
Next x
Next i
End Sub
【问题讨论】:
-
当使用 F8 单步执行时,它不会在特定行上失败吗?
-
Zone_Value = data.Table.DataBodyRange...中的data.Table是什么?你的ListObject是Data_Table。 -
是否有理由需要将 Data_Table 包含在范围内(没有指定的父级)而不是使用 Data_Table.Range.Rows.Count
-
当我调试它时,它会突出显示 Sub Finding_Zone()
-
@BigBen - 现在改变了。谢谢。
标签: excel vba debugging error-handling