Excel VBA - 当声明范围不为空时出现“需要对象”错误

Excel VBA - 当声明范围不为空时出现“需要对象”错误

下面是我出错的代码。我已用粗体标记了发生错误的行(即行首和行末的 **)。

我收到错误的具体代码部分是:并且(范围(“M5:M78”)不为空)

如果范围是一个对象,为什么我不能不声明这个范围(上面)不为空?

Option Explicit

Sub ResetWorksheetMonth1()

Dim i As Long

Dim LastRow As Long

LastRow = Range("X" & Rows.Count).End(xlUp).Row

With Worksheets("Analysis Worksheet").Activate

For i = 5 To LastRow

**If Range("M" & i).Value = 0 And (Range("M5:M78") Is Not Null) And Range("N" & i).Value > 0 And Range("O" & i).Value > 0 And Range("P" & i).Value > 0 _
    And Range("Q" & i).Value > 0 And Range("R" & i).Value > 0 And Range("S" & i).Value > 0 And Range("T" & i).Value > 0 _
    And Range("U" & i).Value > 0 And Range("V" & i).Value > 0 And Range("W" & i).Value > 0 And Range("X" & i).Value > 0 Then**

Range("M" & i).Value = Range("N" & i).Value

Range("N" & i).Value = Range("O" & i).Value

Range("O" & i).Value = Range("P" & i).Value

Range("P" & i).Value = Range("Q" & i).Value

Range("Q" & i).Value = Range("R" & i).Value

Range("R" & i).Value = Range("S" & i).Value

Range("S" & i).Value = Range("T" & i).Value

Range("T" & i).Value = Range("U" & i).Value

Range("U" & i).Value = Range("V" & i).Value

Range("V" & i).Value = Range("W" & i).Value

Range("W" & i).Value = Range("X" & i).Value

Range("X" & i).Value = Range("Z" & i).Value

Range("Y" & i).Formula = "=SUM(" & Range(Cells(i, 13), Cells(i, 24)).Address(False, False) & ")"

Range("Z" & i).Value = Null

Range("AL" & i).Formula = "=SUM(" & Range(Cells(i, 26), Cells(i, 37)).Address(False, False) & ")"

End If

Next i

答案1

如果你只是想检查该范围内的所有单元格是否为空,你可以使用

WorksheetFunction.CountA(Range("M5:M78")) <> 0

请记住,您要尝试检查的是整个范围是否等于空,而不是循环并检查该范围内每个单元格的内容。

相关内容