Ich versuche, einen Bereich in VBA zu definieren, aber aus irgendeinem Grund schlägt meine Methode fehl. Im folgenden Codebeispiel funktionieren die beiden ersten Zeilen, die letzte Zeile schlägt jedoch mit der Meldung " Methode 'Range' des Objekts '_Worksheet' fehl " fehl :
Set c = Parametre.Range("B2")
Set c = Parametre.Range("XFD2").End(xlToLeft)
Set c = Range(Parametre.Range("B2"), Parametre.Range("XFD2").End(xlToLeft))
Ich habe überprüft, dass das Blatt nicht geschützt ist, dass das zweite Argument rechts vom ersten ist (es ist L2), und bin im Moment ziemlich ratlos, warum meine Methode fehlschlägt. Jede Eingabe, was das Problem sein könnte, wäre sehr dankbar.
microsoft-excel
vba
Eirikdaude
quelle
quelle
Parametre
handelt sich um einworksheet
Objekt, ist Ihr Code vollkommen gültig. Ich habe es kopiert + eingefügt und es funktioniert einwandfrei, auch wennParametre
es sich nicht um das aktive Arbeitsblatt handelt.Antworten:
Sie scheinen das Parametre-Objekt zu verpassen, sodass es standardmäßig wieder in Worksheet angezeigt wird und aus diesem Grund fehlschlägt. Versuchen Sie den folgenden Code zu verwenden:
oder alternativ, wenn Sie saubereren Code schreiben möchten, verwenden Sie Folgendes:
quelle
parametre.range
für die ersten beiden und die dritte, Sie schreiben nurrange
. VBA ist nicht intelligent genug, um den Bereich zu verstehen, und versucht, dies auf das Arbeitsblattobjekt anzuwenden, und schlägt fehl. Probieren Sie es aus und Sie werden sehen, dass es funktioniert.