Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1832to1836
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA ohne Sheets(xxx).Select

VBA ohne Sheets(xxx).Select
27.05.2021 21:13:30
W
Hallo Forum,
Ich verarbeite derzeit ca. 50 Datenbestände, die ich zuerst in einen Array einlese. Danach möchte ich das jeweilige Tabellenblatt inhaltlich löschen, um dann den Array in das leere Blatt zu laden.
Der Ablauf funktioniert, wenn ich zuvor das Ziel-Blatt mit Sheets(xx).Select aktiviere.
Lasse ich den Sheets(xxx).Select weg, erhalte ich an 2 Stellen einen Laufzeitfehler 410. Es sind die Befehle, die fett geschrieben sind.
Meine 4 Befehle:
Worksheets(BlattName).Select
Worksheets(BlattName).Cells.Select
Selection.Delete Shift:=xlUp
Worksheets(BlattName).Range(Cells(1, 1), Cells(AddRows + 1, AddCols + 1)) = WorksheetFunction.Transpose(FuncRC)
Das Füllen des Tabellenblattes habe ich auch schon ohne Transpose gemacht
Wie kann ich das Problem lösen, ohne bei den oben genannten Befehlen vorher das entsprechende Tabellenblatt zu aktivieren?
Gruß
Werner

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA ohne Sheets(xxx).Select
27.05.2021 21:28:44
EtoPHG
Hallo Werner,
so?

With Worksheets(Blattname)
.UsedRange.Delete Shift;=xlUp
.Range(.Cells(1, 1), .Cells(AddRows + 1, AddCols + 1)) = WorksheetFunction.Transpose(FuncRC)
End With
Gruess Hansueli
AW: VBA ohne Sheets(xxx).Select
27.05.2021 21:49:01
W
Hallo Hansueli,
herzlichen Dank für Deinen Codiervorschlag, mit dem ich erfolgreich und ohne Select die Daten in die Tabelle gebracht habe.
Außerdem habe ich festgestellt, dass meine Daten falsch in die Tabelle geschrieben werden, wenn ich "WorksheetFunction.Transpose(FuncRC)" verwende. Es ist eine 2D-Array. Nur mit "= FuncRC" werden die Daten richtig übertragen.
Hätte nicht gedacht, dass das Problem noch heute gelöst würde.
Gruß
Werner
Anzeige
AW: VBA ohne Sheets(xxx).Select
27.05.2021 21:43:07
Daniel
Hi
1. Referenziere vollständig, dh wenn du mit mehrern Tabellenblättern arbeitest, muss das Sheet(xxx) vor JEDES Range, Cells, Columns und Rows gesetzt werden.
ohne die Sheetangabe geht der Bezug immer auf das aktive Tabellenblatt.
das gilt auch für die Cells innerhalb von Range! der Fehler kommt, wenn die Cells auf ein anderes Tabellenblatt refernzieren als die Range, die sie definieren sollen.
da das Range(Cells, Cells) mit Tabellenblattangabe vor den beiden Zells zu aufwendig wird, verwende die Resize-Funktion um den Bereich zu beschreiben, das vermeidet auch weitere Umrechungen, falls der Zielbereich nicht in A1 beginnt, sondern in einer anderen Zelle

Worksheets(BlattName).Cells(1, 1), Resize(AddRows + 1, AddCols + 1) = WorksheetFunction.Transpose(FuncRC)
2. Selektiere nicht. Hänge ansatt .Select den eigentlichen Befehl an den Zellbereich direkt an
aus

Worksheets(BlattName).Select
Worksheets(BlattName).Cells.Select
Selection.Delete Shift:=xlUp
wird

Worksheets(BlattName).Cells.Delete Shift:=xlUp
Gruß Daniel
Anzeige
AW: VBA ohne Sheets(xxx).Select
27.05.2021 22:01:04
W
Hallo Daniel.
Danke für Deine Infos. Wieder etwas dazugelernt.
Gruß
Werner

118 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige