Excel vba variable Objet ou variable bloc with non définie erreur
Je suis coder en vba excel et obtenez l'erreur 91 ou une variable Objet ou variable bloc with non définie d'erreur quand je lance mon code et je ne sais pas pourquoi. Je définir et de mettre mes variables donc je ne sais pas quelle est la cause de l'erreur. Le code est ci-dessous
Sub Button5_Click()
Dim i As Integer
Dim Month As Range
Dim Avg As Range
Dim Target As Range
Dim Incorrect As Range
Set Month = Range("J19")
Set Avg = Range("H19")
Set Incorrect = Range("A19")
Set Target = Range("M19")
'Range("A" & Rows.Count).End(xlUp).Row
For i = 0 To 1000
If IsEmpty(Avg) Then
If Month.Find("jan") <> "" Then
Set Target = Range("M19")
L'erreur est sur la Si Mois.Find("jan") <> "" alors partie du code.
Le code complet est ici:
Sub Button5_Click()
Dim i As Integer
Dim Month As Range
Dim Avg As Range
Dim Target As Range
Dim Incorrect As Range
Set Month = Range("J19")
Set Avg = Range("H19")
Set Incorrect = Range("A19")
Set Target = Range("M19")
'Range("A" & Rows.Count).End(xlUp).Row
For i = 0 To 1000
If IsEmpty(Avg) Then
If Month.Find("jan") <> "" Then
Set Target = Range("M19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("feb") <> "" Then
Set Target = Range("O19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("mar") <> "" Then
Set Target = Range("Q19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("apr") <> "" Then
Set Target = Range("S19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("may") <> "" Then
Set Target = Range("U19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("jun") <> "" Then
Set Target = Range("W19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("jul") <> "" Then
Set Target = Range("Y19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("aug") <> "" Then
Set Target = Range("AA19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("sep") <> "" Then
Set Target = Range("AC19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("oct") <> "" Then
Set Target = Range("AE19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("nov") <> "" Then
Set Target = Range("AG19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
Else
Set Target = Range("AI19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
End If
Else
If Month.Find("jan") <> "" Then
Set Target = Range("N19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("feb") <> "" Then
Set Target = Range("P19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("mar") <> "" Then
Set Target = Range("R19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("apr") <> "" Then
Set Target = Range("T19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("may") <> "" Then
Set Target = Range("V19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("jun") <> "" Then
Set Target = Range("X19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("jul") <> "" Then
Set Target = Range("Z19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("aug") <> "" Then
Set Target = Range("AB19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("sep") <> "" Then
Set Target = Range("AD19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("oct") <> "" Then
Set Target = Range("AF19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
ElseIf Month.Find("nov") <> "" Then
Set Target = Range("AH19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
Else
Set Target = Range("AJ19")
If IsEmpty(Target) Then
Incorrect.Value = "X"
End If
End If
End If
Set Month = Month.Offset(1, 0)
Set Incorrect = Incorrect.Offset(1, 0)
Set Avg = Avg.Offset(1, 0)
Set Target = Target.Offset(1, 0)
Next i
End Sub
Toute aide est grandement appréciée.
- Related post qui est important de savoir tout en travaillant dans VBA - Quel est l'Ensemble de mots clés en VBA?.
Vous devez vous connecter pour publier un commentaire.
Range.Find
renvoie uneRange
de sorte que vous besoin de l'évaluer comme un objet:Si vous avez besoin de travailler avec le retour de l'
Range
vous pouvez utiliser quelque chose comme ceci:La référence pour
Range.Find
est ici.Set worksheet = Worksheet
c. s.x=4