Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1156to1160
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

VBA: Range eindimensionell an Funktion übergeben

VBA: Range eindimensionell an Funktion übergeben
axel_k
Hi,
ich möchte aus einer Tabelle Werte aus einer Spalte in eine Funktion einlesen:

Function bla(daten)
End Function

Wenn ich das tue, liegt daten als (n,1)-Matrix zweidimensional vor.
Kann ich daten irgendwie so einlesen, dass ich einen eindimensionalen Vektor (daten(n)) erhalte? Oder geht das nur über eine Umwandlung? Wie müsste diese dann aussehen?
Besten Dank für schnelle Hilfe, Gruß, Axel

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
erstelle mit Schleife ein neues Array...
31.05.2010 12:02:47
Tino
Hallo,
von 0 bis ubound(daten) - 1.
in etwa so
Function bla(varDaten As Variant)
Dim NewAr(), A As Long
ReDim NewAr(UBound(varDaten) - 1)
For A = LBound(varDaten) To UBound(varDaten)
NewAr(A - 1) = varDaten(A, 1)
Next A
End Function
Sub test()
bla Range("A1:A10").Value2
End Sub
Gruß Tino
noch eine Version...
31.05.2010 12:19:07
Tino
Hallo,
Function bla(varDaten As Variant)
Dim NewAr, A As Long
With Application
NewAr = Split(Join(.Transpose(varDaten), ";"), ";")
End With
For A = LBound(NewAr) To UBound(NewAr)
Debug.Print NewAr(A - 1)
Next A
End Function
Sub test()
bla Range("A1:A10").Value2
End Sub
Gruß Tino
Anzeige
Werte sind im Textformat
31.05.2010 12:54:50
axel_k
Einziges Problem, was ich hier habe, ist, dass die Werte jetzt keine Zahlen sondern Text sind. Gibt's hier noch eine schnelle Umwandlung?
AW: VBA: Range eindimensionell an Funktion übergeben
31.05.2010 12:04:30
Nepumuk
Hallo Axel,
Umwandel !!!
Public Sub Test1()
    Dim vntArray As Variant
    vntArray = Range("A1:A10").Value2
    Call Test2(WorksheetFunction.Transpose(vntArray))
End Sub

Private Sub Test2(vntArray As Variant)
    Dim lngIndex As Long
    For lngIndex = LBound(vntArray) To UBound(vntArray)
        Debug.Print vntArray(lngIndex)
    Next
End Sub

Gruß
Nepumuk
Anzeige
Danke
31.05.2010 12:50:24
axel_k
Cool, Danke,
es geht scheinbar wirklich nicht ohne Umwandlung...
Ich werde mal ein wenig rumspielen, was das schnellste ist (vielleicht muss ich dann auch die Umwandlung weglassen...).
AW: VBA: Range eindimensionell an Funktion übergeben
01.06.2010 11:10:59
axel_k
Ergänzung:
Die Umwandlung geht ganz einfach mit:
Function bla(varDaten As Variant)
Dim NewAr, A As Long
NewAr = Application.Transpose(varDaten)
End Function

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige