Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
456to460
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
456to460
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sort .. Laufzeitfehler 1004

Sort .. Laufzeitfehler 1004
16.07.2004 15:13:47
Günter
Hallo,
hab grade ein kleines Problem mit dem Code unten. Es läuft bis zum Sortbefehl ganz hervorglänzend, aber mit dem Selection.Sort .. schnellt der Laufzeitfehler 1004 ("Die Sort-Methode des Range-Objektes konnte nicht ausgeführt werden") hoch und ich versteh nicht wieso.
*!
Im Sort die Felder Key1 und Key2 scheinen den Fehler auszulösen, aber warum?
a) Kann man im sort-Befehl nicht mit Variablen arbeiten?
b) Was muss ich tun damit es funktioniert?
Grüße
Günter
'-- Code -----------------
' Excel 2000, VBA 6.0
'-------------------------

Sub g_sortieren()
Dim RKEY1 As String
Dim RKEY2 As String
Dim RangeKEY1 As Object
Dim RangeKEY2 As Object
Dim SORTKEY, SORTKEY1, SORTKEY2 As Variant
Dim ZWO As Variant
Dim RICHTUNG As String
' Abfrage des Option-Button-Status
If Sheets("Optionen").OPTB_auf = True Then
RICHTUNG = "xlascending"
Else: RICHTUNG = "xldescending"
End If
SORTKEY1 = 0
SORTKEY2 = 0
' ### Test
SORT_DD = 6
' ### Test
If Sheets("Optionen").OptB_DD = True Then
SORTKEY1 = SORT_DD + 1
SORTKEY2 = SORT_DD + 2
ElseIf Sheets("Optionen").OptB_CB = True Then
SORTKEY1 = SORT_CB + 1
SORTKEY2 = SORT_CB + 2
ElseIf Sheets("Optionen").OptB_CE = True Then
SORTKEY1 = SORT_CE + 1
SORTKEY2 = SORT_CE + 2
End If
ZWO = 2
SORTKEY1 = Columns(SORTKEY1).Address(False, False)
SORTKEY1 = Left(SORTKEY1, InStr(SORTKEY1, ":") - 1)
RKEY1 = SORTKEY1 & ZWO
SORTKEY2 = Columns(SORTKEY2).Address(False, False)
SORTKEY2 = Left(SORTKEY2, InStr(SORTKEY2, ":") - 1)
RKEY2 = SORTKEY2 & ZWO
Set RangeKEY1 = Range(RKEY1)
Set RangeKEY2 = Range(RKEY2)
Range(RKEY1).Select
Selection.CurrentRegion.Select
If SORTKEY1 > 0 And SORTKEY2 > 0 Then
Selection.Sort Key1:=RangeKEY1, Order1:=RICHTUNG, Key2:=RangeKEY2 _
, Order2:=RICHTUNG, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
End If
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sort .. Laufzeitfehler 1004
16.07.2004 17:53:11
Otto
Hallo Günter,
Meine Testumgebung: Excel 9.0 SR-1, Multilingual unter Windows 2000 SP-4
füge eine Zeile Option explicit am Anfang Deines Code ein. Deine Variablen sind, falls überhaupt, grauslich deklariert.
hast Du Dir mal die xlBasics aus der xlFAQ von Hans' Server angesehen? Dort steht alles über Variablendeklaration!
Deklariere statt
Dim RangeKEY1 As Object
lieber
Dim rngKey1 as Range
Vermeide Variant, nimm lieber zwei Variablen vom Typ String und Integer.
Lass Dir direkt vor dem Sort sagen, welchen Wert Deine RKEY1 und 2 haben.
Gruß Otto
Anzeige
AW: Sort .. Laufzeitfehler 1004
16.07.2004 17:56:34
Uwe
Hallo Günter,
probier mal statt RangKey? direkt mit SORTKEY?.
Mit SORTKEY? = Columns(SORTKEY?).Cells(1).Address(False, False) hast Du auch gleich
eine richtige Adresse.
Gruß Uwe
AW: Sort .. Laufzeitfehler 1004
19.07.2004 14:09:20
Günter
@ Otto,
danke für dein Feedback, iss schon klar das Variant kein wirklich guter Datentyp ist. Aber solange ich mit "für mich" neuen Befehlen rumspiele und etwas über diese herausfinden (lernen) will, sehen manche Dinge halt *bewusst-grauslig* aus. ;))
..wenn dann klar ist warum etwas so läuft wie es sein soll, dann deklariere ich die Variant und sonstigen Krücken halt "stilvoller" aus.
@ Uwe,
danke für den Tip - werde ich gleich mal ausprobieren.
Thx, Grüße
Günter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige