Excel - Ein Makro zum Festlegen und automatischen Ausfüllen eines Bereichs

Problem

Ich habe ein Makro für Excel aufgezeichnet und ein Teil des Codes besteht darin, eine Indexspalte zu erstellen, die die Zelle mit einer Zeilenzahl (dh A2 = 1, A3 = 2 usw.) basierend auf den Daten in Spalte B füllt.

  • Das Makro wurde einwandfrei aufgezeichnet und funktionierte einwandfrei. Wenn ich jedoch versuche, es für eine andere Datei zu verwenden, stößt das Makro auf ein Problem, da nicht für jede Datei die gleiche Anzahl gefüllter Zeilen zu zählen ist.
  • Wie kann ich den folgenden Code ändern, um ihn an alle geöffneten Excel-Dateien anzupassen, unabhängig von der Anzahl der Datenzeilen?

 Columns ("A: A"). Select Selection.Insert Shift: = xlToRight, CopyOrigin: = xlFormatFromLeftOrAbove Range ("A1"). Select ActiveCell.FormulaR1C1 = "Index" Columns ("B: B"). Select Selection.Copy Spalten ("A: A"). Select Selection.PasteSpecial Paste: = xlPasteFormats, Operation: = xlNone, _ SkipBlanks: = False, Transpose: = False Application.CutCopyMode = False Range ("A2"). Select ActiveCell.FormulaR1C1 = "1" -Bereich ("A3"). Wählen Sie ActiveCell.FormulaR1C1 = "2" -Bereich ("A2: A3"). Wählen Sie Selection.AutoFill Destination: = Range ("A2: A295324") Range ("A2: A295324") .Wählen 

Lösung

Probieren Sie den folgenden Code aus:

 Untertest () Abblenden von Zeilen als lange Spalten ("A: A"). Auswahl auswählen. Umschalttaste einfügen: = xlToRight-Bereich ("A1"). Wert = "Index" -Bereich ("A2"). Wert = 1 Bereich (" A3 "). Wert = 2 Range (" A2: A3 "). Wählen Sie lRow = Range (" B "& Rows.Count) .End (xlUp) .Row Selection.AutoFill Destination: = Range (" A2: A "& lRow) End Sub 

Vielen Dank an TrowaD für diesen Tipp.

Vorherige Artikel Nächster Artikel

Top-Tipps