Thema Datum  Von Nutzer Rating
Antwort
07.05.2014 10:14:11 MissNobody
NotSolved
07.05.2014 11:36:46 Gast37570
NotSolved
07.05.2014 11:58:14 MissNobody
NotSolved
07.05.2014 13:04:25 Gast76499
Solved
07.05.2014 13:41:54 MissNobody
NotSolved
Blau Addieren und Sortieren zweier Spalten
07.05.2014 14:31:18 Gast26589
NotSolved
07.05.2014 15:22:12 MissNobody
NotSolved
07.05.2014 16:01:01 Gast48465
Solved
07.05.2014 16:12:14 MissNobody
NotSolved
07.05.2014 17:29:11 Gast19822
NotSolved

Ansicht des Beitrags:
Von:
Gast26589
Datum:
07.05.2014 14:31:18
Views:
866
Rating: Antwort:
  Ja
Thema:
Addieren und Sortieren zweier Spalten

*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ß


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
07.05.2014 10:14:11 MissNobody
NotSolved
07.05.2014 11:36:46 Gast37570
NotSolved
07.05.2014 11:58:14 MissNobody
NotSolved
07.05.2014 13:04:25 Gast76499
Solved
07.05.2014 13:41:54 MissNobody
NotSolved
Blau Addieren und Sortieren zweier Spalten
07.05.2014 14:31:18 Gast26589
NotSolved
07.05.2014 15:22:12 MissNobody
NotSolved
07.05.2014 16:01:01 Gast48465
Solved
07.05.2014 16:12:14 MissNobody
NotSolved
07.05.2014 17:29:11 Gast19822
NotSolved