array Übergabe

DerEisige

Erfahrenes Mitglied
Hallo Leute,

ich habe ein kleines Verständnis Problem.
Ich möchte rowText an eine Funktion übergeben und dann in der Funktion bearbeiten, bei ExcelRowWrite funktioniert das auch, bei TestText kommt aber immer ein Syntax Fehler.
Wo mache ich einen Fehler?

Visual Basic:
sub test()
Dim rowText(7)     As String

rowText(0) = "Datum"
rowText(1) = "Uhrzeit"
rowText(2) = "System/ Topic"
rowText(3) = "Reason"
rowText(4) = "Ticket Time"
rowText(5) = "Key"
rowText(6) = "Betreff"
        
ExcelRowWrite(excelObj, excelTable, excelTableRow, rowText) '<- Heder Schreiben
TestText(rowText) '<--------------------??????

END SUB
Private Function ExcelRowWrite(excelObj As Object, excelTable As String, excelTableRow As Integer, text() As String) 'Tabellen zeile Schreiben
    Dim iColumn As Integer
    For iColumn = 1 To UBound(text) + 1
        excelObj.Sheets(excelTable).Cells(excelTableRow, iColumn).Value = text(iColumn - 1)
    Next
    excelTableRow = excelTableRow + 1
End Function

Private Function TestText(text() As String) '<-- rowText neu befüllen
    text(0) = "Test1"
    text(1) = "Test2"
    text(2) = "Test3"
    text(3) = "Test4"
    text(4) = "Test5"
    text(5) = "Test6"
    text(6) = "Test7"
End Function
 
TestText ist keine Function sondern eine Sub. Da hast keinen Rückgabewert.
Deine Variable text wird aber nachher überschrieben. Somit muss sie als Referenz übergeben werden

Visual Basic:
'Variant mit Sub und Referenz
fillUpTestText rowText

Private Sub fillUpTestText(ByRef text() As String)
    text(0) = "Test1"
    '...
    text(6) = "Test7"
End Sub

'Klassische Varient mit einer Funktion und Rückgabewert
rowText = createTestText

Private Function createTestText() As String() 
    Redim createTestText(6)
    createTestText(0) = "Test1"
    '...
    createTestText(6) = "Test7"
End Function
 
Zurück