Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1512to1516
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

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!

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige