Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Range möglich variabel zu halten?

Forumthread: Range möglich variabel zu halten?

Range möglich variabel zu halten?
15.09.2016 12:02:46
Jens
Hallo Zusammen,
ich probiere gerade die Formatierung für die neue eingefügten Zeilen zu Kopieren. Diese Formatierung soll aus der ersten Zeile der Tabelle übernommen werden. In T7 steht die erste Zeile der Tabelle. In T6 steht die letzte neue Zeile ohne Format. In T5 stehen die Anzahl der neue Zeilen. Meine Frage ist ob man in einer Range Funktion zwei Integer haben kann. Ich muss die Range "variabel" halten, da ich den Makro für mehrer Dateien verwenden möchte.
Sub Makro11()
Dim a As Integer
Dim F As Integer
Dim G As Integer
a = Worksheets("Navision").Range("T7") + 1
F = Worksheets("Navision").Range("T6") - Worksheets("Navision").Range("T5") - 1
G = Worksheets("Navision").Range("T6") - 1
Worksheets("Service Center Plan-Ist 2016").Range("B" & a":R" & a).Select
Selection.Copy
Worksheets("Service Center Plan-Ist 2016").Range("B & F :R" & G).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
Vielen Dank!
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range möglich variabel zu halten?
15.09.2016 12:19:51
Daniel
HI
kann man schon.
du musst halt nur die Spielregeln einhalten, wie man einen Text aus festen Textteilen und Variablen zusammensetzt.
hierbei gilt:
- Variablen müssen immer ausserhalb der Anführungszeichen stehen, denn innerhalb der Anführungszeichen werden sie nicht als Variablen erkannt, sondern wie einfacher Text gelesen.
- die einzelnen Teile werden mit & verkettet. Vor und nach dem & muss immer ein Leerzeichen stehen.
sieht dann bei dir so aus:
Range("B" & a & ":R" & a)
Range("B" & F & ":R" & G)
desweitern solltest du beachten, dass ein .Select immer nur auf dem aktiven Tabellenblatt ausgeführt werden kann und in der Regel überflüssig ist.
statt
Range(...).Select
Selection.Copy
Range(...).Select
Selection.PasteSpecial 

schreibt man besser:
Range(...).Coyp
Range(...).PasteSpecial

das macht den Code schneller, kürzer, übersichtlicher, weniger Fehleranfällig.
der Recorder zeichnet das mit dem Select so auf, weil wir Mausschubser so arbeiten, aber in einem Makro braucht man es nicht und daher sollte aufgezeichneter Code immer überarbeitet werden.
Gruß Daniel
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige