Excel VBA - Obtendo o erro "Objeto necessário" ao indicar intervalo não é nulo

0

Abaixo está o meu código onde estou recebendo o erro. Marquei a linha em que o erro ocorre em negrito (por exemplo, ** no início e no final da linha **).

A parte específica do código em que estou recebendo o erro é: E (Range ("M5: M78") não é nulo)

Se um intervalo é um objeto, por que não posso afirmar que esse intervalo (acima) não é nulo?

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
    
por HeatherD 12.02.2016 / 14:46

1 resposta

0

Se você está apenas tentando verificar se todas as células desse intervalo estão vazias, você pode usar

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

Tenha em mente que o que você está tentando vai verificar se um intervalo inteiro é igual a null, não percorrer e verificar o conteúdo de cada célula nesse intervalo.

    
por 12.02.2016 / 14:55