VBA: Werte von Datenfeld beibehalten
Datenfeld
Ich rufe in einer Prozedur eine Sub-Prozedur auf, welche ein Datenfeld liefern und dessen Werte an die aufrufende Prozedur zur weiteren Verarbeitung zurückgeben soll.
Leider gehen die Werte des Datenfelds verloren, sobald die aufgerufene Prozedur beendet wird.
Wie umgehe ich das?
Hier die Codings:
Aufrufende Prozedur:
Static
Sub Chk_Accord_SelList(inpWB As Workbook)
Dim cct As Integer 'Spaltenzähler
Dim a As Variant
Dim col_title As String
Dim r_ct As Integer
Static vals(10) As String
For cct = 2 To col_count_empl
a = Application.Match(Workbooks(inpWB.Name).Sheets(1).Cells(6, cct), ThisWorkbook.Sheets(" _
Zuordnung Var_SelLists").Range("a4:a14"), 0)
If IsNumeric(a) Then 'wenn vorhanden dann
'Hier kommt der Code rein
col_title = Workbooks(inpWB.Name).Sheets(1).Cells(6, cct).Value
For r_ct = 8 To row_count_empl
If Not Workbooks(inpWB.Name).Sheets(1).Cells(r_ct, cct) = "" Then
Call string_trennen(Workbooks(inpWB.Name).Sheets(1).Cells(r_ct, cct), ",") _
b> End If
Next
Else 'sonst (wenn Fehler)
'nichts machen
End If
Next
End Sub
aufgerufene Prozedur:
Static
Sub string_trennen(zelle As Range, trennzeichen As String)
Dim pos As Integer
Dim inh As String, teilstr As String, comp_val As String
Dim int1 As Integer
Static vals(10) As String
'Funktion: Einzelne Zeichenketten aus einer Gesamtkette extrahieren
' und in Datenfeld schreiben zur späteren Verarbeitung
inh = zelle.Value
int1 = 0
For pos = 1 To Len(inh)
If Not Mid(inh, pos, 1) = trennzeichen Then
teilstr = teilstr & Mid(inh, pos, 1)
Else
int1 = int1 + 1
comp_val = Application.WorksheetFunction.Trim(teilstr)
vals(int1) = comp_val
teilstr = ""
End If
Next
End Sub
Danke für eure Hilfe!
Gruss, Rudi