在Excel中的工作表中的单元格中循环

时间:2019-07-16 13:57:20

标签: excel vba

我正在用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个对象所需的运行时错误,因此代码无法编译。

1 个答案:

答案 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