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

Selection an Array übergeben

Selection an Array übergeben
20.11.2005 12:43:42
Alex
Hallo liebes Forum,
Ich bin gerade dabei eine Routine zu schreiben, die auf die Selection angewendet werden soll. Ich hab mir gedacht: "Alex, übergeb doch einfach die Selection an ein Array" gemacht - getan:
avarSel() = Selection
Jedoch wenn die Selection nur ein Feld groß ist, bekomme ich einen Laufzeit fehler : Typen unverträglich.
Also habe ich ein kleines IF-Konstrukt gebastelt, das diesen Fehler vermeidet:
Dim avarSel() As Variant
ReDim avarSel(1 To Selection.Rows.Count, 1 To Selection.Columns.Count)
If Selection.Rows.Count = 1 And Selection.Columns.Count = 1 Then
avarSel(1, 1) = Selection
Else
avarSel() = Selection
End If
Jedoch finde ich diese Lösung nicht sehr elegant. Ich bin nunmal nicht so geübt ;-)
Kennt jmd. ne schönere Lösung für das Problem, oder kann man das so stehen lassen?
Gruß
Alex

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Selection an Array übergeben
20.11.2005 12:55:46
Nepumuk
Hi,
so:
Public Sub test()
    Dim vntArray As Variant
    vntArray = Selection
End Sub

Gruß
Nepumuk

Anzeige
AW: Selection an Array übergeben
20.11.2005 13:42:01
Alex
Hallo Nepumuk, danke für deine promte Antwort.
Das klappt ja soweit, danke. Wie einfach das doch ist :-)
Nun möchte ich aber die Variable avarSel durch folgende For-Schleifen laufen lassen, damit alle Felder, die dem Array übergeben worden sind verarbeitet werden:
For intCountCol = LBound(avarSel, 2) To UBound(avarSel, 2)
For intCountRow = LBound(avarSel, 1) To UBound(avarSel, 1)
convertVBADateToMySQLDate CStr((avarSel(intCountRow, intCountCol)))
Next intCountRow
Next intCountCol
Wenn jedoch die selection sich nur auf ein Feld beschränkt, kann ich ja nicht mehr die größe des Array abfragen, um die For-Schleifen zu steuern.
Gibts da ne möglichkeit das elegant zu lösen?
Gruß
Alex
Anzeige
AW: Selection an Array übergeben
20.11.2005 13:54:30
Nepumuk
Hi,
ich weiß nicht was du unter elegant verstehst, wenn's reicht, dass es funktionell ist, dann so:
Public Sub test()
    Dim vntArray As Variant
    Dim lngRow As Long
    Dim intColumn As Integer
    vntArray = Selection
    If IsArray(vntArray) Then
        For intColumn = 1 To UBound(vntArray, 2)
            For lngRow = 1 To UBound(vntArray)
                If Not IsEmpty(vntArray(lngRow, intColumn)) Then _
                    Call Ausgabe(vntArray(lngRow, intColumn))
            Next
        Next
    Else
        If Not IsEmpty(vntArray) Then Ausgabe (vntArray)
    End If
End Sub

Private Sub Ausgabe(vntValue As Variant)
    Debug.Print vntValue
End Sub

Gruß
Nepumuk

Anzeige
AW: Selection an Array übergeben
20.11.2005 14:45:13
Alex
sowas in der art finde ich recht elegant - danke dir

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige