Zelleninhalte in VBA mit Spaltenreferenz löschen
Ich versuche, ein Stück Code zu bekommen, um die Daten in einigen Zellen zu löschen, mit der Spalte Referenzen. Ich verwende den folgenden Code:
Worksheets(sheetname).Range(.Cells(2, LastColData), .Cells(LastRowData, LastColData)).ClearContents
Um dies zu tun, erhalte ich jedoch einen Fehler im ersten Abschnitt "Cells", warum ist das so?
12
3
Sie können auf ganze Spalten als Bereich zugreifen, indem Sie das Objekt
Worksheet.Columns
verwendenEtwa so:
sollte den Inhalt der Spalte A löschen
Es gibt auch das
Worksheet.Rows
Objekt, wenn Sie etwas Ähnliches für Zeilen tun müssenDer Fehler, den Sie erhalten, ist wahrscheinlich auf einen fehlenden with-Block zurückzuführen.
Sie können hier über with-Blöcke lesen: Microsoft-Hilfe
Wie Gary's Student erwähnte, müssten Sie den Punkt vor
Cells
entfernen, damit der Code so funktioniert, wie Sie ihn ursprünglich geschrieben haben. Ich kann mir nicht sicher sein, da Sie nur die eine Codezeile eingefügt haben, aber der Fehler, der beim Löschen der Punkte auftrat, könnte etwas damit zu tun haben, wie Sie Ihre Variablen definiert haben.Ich habe Ihre Code-Zeile mit den als Ganzzahlen definierten Variablen ausgeführt und es hat funktioniert:
Ich glaube nicht, dass eine "With"-Anweisung für die von Ihnen geteilte Codezeile angemessen ist, aber wenn Sie eine verwenden würden, würde die "With"-Anweisung am Anfang der Zeile stehen, die das Objekt definiert, das Sie manipulieren. Hier ist Ihr Code, der mit einer unnötigen "With"-Anweisung umgeschrieben wurde:
Die "With"-Anweisungen sollen Ihnen das Abtippen von Code ersparen und die Lesbarkeit Ihres Codes verbessern. Sie sind nützlich und angemessen, wenn Sie mehr als eine Sache mit einem Objekt tun. Wenn Sie zum Beispiel die Spalte rot färben und einen dicken schwarzen Rand hinzufügen möchten, könnten Sie eine
With
-Anweisung wie diese verwenden:Andernfalls müssten Sie den Bereich für jede Aktion oder Eigenschaft angeben, etwa so:
Ich hoffe, dies gibt Ihnen ein Gefühl dafür, warum Gary's Student glaubte, dass der Compiler ein
With
erwarten könnte (obwohl es unangebracht war) und wie und wann einWith
in Ihrem Code nützlich sein kann.Sie benötigen eine With-Anweisung vor dieser. Oder machen Sie die .Cells zu Cells