*Seufz* - steht doch alles schön erklärt in der VBA-Hilfe. :(
>> 1. Bei Dim wks As Excel.Worksheet => Warum muss man das definieren? Und was bedeutet das genau?
Option Explicit erzwingt die Deklaration aller Variablen vor ihrer Nutzung. Man beugt so schonmal Tippfehler vor, auch hilft es dabei das das IntelliSense funktionieren kann.
Man gibt den Namen der Variable sowie deren Datentyp an. In VBA Excel kann man sich das "Excel" vor den Excel-typischen Datentyp sparen, außer man hat selbst Klassen erstellt, deren Name sich mit denen von Excel gleichen, dann muss man angeben ob man z.B. Excel.Worksheet oder MyVBAProjekt.Worksheet meint (oder ob man z.B. Excel.Range oder Word.Range meint).
>> 2. .FormulaR1C1 = "=RC[-2]+RC[-1]" => Wie kommst du auf diese Formel? Und was hat es mit den R1C1 auf sich?
Excel kennt zwei Schreibweisen.
Die gewohnte A1 Schreibweise, welche absolute Zellenbezüge darstellt ...
und die Z1S1 (Z=Zeile, S=Spalte # engl. R1C1 ; R=Row, C=Column) Schreibweise, welche sowohl absolute als auch relative Zellenbezüge darstellen kann (intern "denkt" Excel immer in relativen Angaben, das läßt sich anhand der Autoausfüllenfunktionalität leicht beweisen).
Das Anliegen dieses Themas hier verdeutlicht den Vorteil der Z1S1 gegenüber der von A1.
Werte in Eckigen Klammern bedeuten einen Offset bezogen auf die Zeile in der die Formel steht.
RC[-2] heißt also -> gleiche Zeile und 2 Spalten nach Links
Wendet man das auf z.B. Zelle D15 an, wird daraus B15 ... bezogen auf D16 wird daraus B16 ... usw.
Wenn man das auf einen Bereich D15:D100 anwendet, dann wird dieser Vorgang für jede Zelle einzeln ausgeführt, weil es realative Zellenangaben sind. Mit der A1 Schreibweise wäre das so nicht möglich, man bräuchte dafür eine Schleife mit der man durch sämtliche Zellen interriert (und das ist gegenüber der Excel-eigenen Funktionalität immer langsamer).
>> 3. .Sort Key1:=.Cells(2), Order1:=xlDescending, _
DataOption1:=xlSortTextAsNumbers, _
SortMethod:=xlPinYin => Den Code versteh ich auch nicht ganz.. was bewirken denn die einzelnen Befehle?
Key1 gibt die erste Spalte an nach der sortiert werden soll.
Order1 gibt für die erste Spalte an wie sortiert werden soll (auf- oder absteigend) .
DataOption1 gibt für die erste Spalte an das als Text formatierte Zahlen auch als Zahlen sortiert werden sollen (sonst wäre 20 größer als 100, da die 2 nach der 1 kommt - Texte werden zeichenweise verglichen und damit auch sortiert).
SortMethod ist u.a. für Europäer immer xlPinYin ... es ist auch der Standardwert für die Sort-Methode man kann diese Angabe also auch weglassen.
Gruß
|