Ricevo un errore definito dall'applicazione o definito dall'oggetto?


0

Continuo a ricevere l'errore alla mia dichiarazione if, non sono del tutto sicuro di ciò che sto facendo di sbagliato, qualsiasi aiuto con questo sarebbe molto apprezzato.

lr = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To lr

     DynamicLR = Sheets("RA Inventory").Cells(Rows.Count, 1).End(xlUp).Row


    'If Application.WorksheetFunction.IsNumeric(Application.WorksheetFunction.Match(ActiveSheet.Range("D" & i), Sheets("RA Inventory").Range("D2:D" & DynamicLR), 0)) = False Then
    If Application.WorksheetFunction.IfError(Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Match(ActiveSheet.Range("D" & i), Sheets("RA Inventory").Range("D:D").Select, 0)), False) = False Then

         ActiveSheet.Range("A" & i).Select
         Selection.Copy
         Worksheets("RA Inventory").Activate
         ActiveSheet.Range("A" & DynamicLR).Select
         ActiveSheet.Paste

Grazie


Quale? L'uno o l'altro commentato (inattivo)?
Raystafarian,

Risposte:


1

Se stai parlando del non commentato if, non è necessario selezionare e puoi usare lo zucchero sintattico:

If [iferror(isnumber(match(A1,B:B,0)),false)] = True Then
     MsgBox ("True")
     Else: MsgBox ("False")
end if

Tratta le gamme come faresti con le funzioni es Sheet1!B:B

Puoi anche tralasciare worksheetfunctionciò che consentirà errori (se la tua formula restituisce un errore)

With Application
   if .iferror(.isnumber(.match( ... 
end with

In sostanza, la tua "corrispondenza" non fa riferimento correttamente ai dati. Errore 2015: consultare questa documentazione


Un problema più grande potrebbe essere come lo stai facendo. È necessario utilizzare la gestione degli errori per gestire l'errore. Questo sarebbe meglio -

Sub test()
lr = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To lr

    x = Application.Match(ActiveSheet.Range("B" & i), Sheets("Sheet1").Range("B1:B" & lr), 0)
    If IsNumeric(x) Then
         MsgBox (x)
    End If
Next


End Sub
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.