我正在用VBA for Excel编写代码,以遍历工作簿中所有工作表中的所有单元格,并根据其数值和位置打印某些单元格。但是,由于出现424对象必需错误,因此无法遍历特定工作表中的单元格。
我尝试调试代码,当我尝试遍历特定工作表中的整个单元时,问题显然出在嵌套循环中。
Public Sub loopThrougSheet()
Dim ws As Worksheet
Dim starting_ws As Worksheet
Set starting_ws = ActiveSheet 'remember which worksheet is active in the beginning
Dim cell As Range
Dim data As Range
For Each ws In ThisWorkbook.Worksheets
ws.Activate
Set data = Intersect(ws.UsedRange, ws.Range("A2:AW1048576"))
For Each cell In data
If IsNumeric(cell.Value) And cell.Value > 0.5 Then
Debug.Print (cell.Value)
End If
Next
Next
End Sub
由于出现424个对象所需的运行时错误,因此代码无法编译。
答案 0 :(得分:2)
尝试以下操作:
原因:数据未返回任何内容,工作表可能为空白或交叉口中没有任何内容。
添加了 IsError ,检查单元格以及数据是否为空。
Public Sub loopThrougSheet()
Dim ws As Worksheet
Dim starting_ws As Worksheet
Dim cel As Range
Dim data As Range
For Each ws In ThisWorkbook.Worksheets
Set data = Intersect(ws.UsedRange, ws.Range("A2:AW1048576"))
If Not data Is Nothing Then
For Each cel In data
If Not IsError(cel.Value) Then
If IsNumeric(cel.Value) And cel.Value > 0.5 Then
Debug.Print cel.Value
End If
End If
Next
End If
Next
End Sub