Hallo,
ich möchte ein Array "Var1" (Typ Variant) mit einem Mulivalue-Feld "Liste" aus einem Dokument vergleichen.
Code (stark verkürzt):
Redim results(5)
Dim Var1 As Variant
Dim temp As Variant
temp = doc.Getitemvalue("Liste")
Var1 = FullTrim(results)
Inhaltlich sind beide Elemente im Debugger gleich, aber die Typen unterschiedlich:
Var1 Typ Variant
[0] Typ Variant
[1] Typ Variant
temp Typ Variant
[0] Typ String
[1] Typ String
Dh ich kann sie jetzt nicht vergleichen. wie kann ich die Typen angleichen?
Vielen Dank!
Wie denn bitte?
so nicht:
Dim term1 As String
term1 = CStr(temp)
???
For i = 0 To Ubound (Var1)
If Cstr (Var1 (i)) = temp (i) Then
...
End If
Next i
oder (nicht getestet)
Forall v In Var1
v = Cstr (v)
End Forall
der erste Ansatz setzt voraus, dass die Anzahl an Einträgen gleich ist.
Wäre aber möglich, wenn ich vorher die Anzahl vergleiche.
der zweite Ansatz soll das zum Ergebnis haben:
Var1 Typ Variant
[0] Typ String
[1] Typ String
Richtig? Macht "er" aber nicht. "Er" macht gar nix.
Redim results (5) As String --> Funktioniert korrekt.
ABER: Du hast Recht, die Variablen kann ich trotzdem nicht vergleichen.
Ich verfolge daher Ansatz 1 in Kombination mit "Redim results (5) As String"
For i = 0 To Ubound (Var1)
If Var1 (i) = temp (i) Then
...
End If
Next i
Var1 und temp werden vorher sortiert, die Anzahl an Einträgen überprüft und dann einzeln verglichen.
So, funktioniert!
Danke für die Hilfe!