genannt hat
Ein 0
im Wörterbuch enthält keinen Wert. A 1
kann Ihnen vielleicht das gewünschte Ergebnis geben. Ich weiß nicht, PHP, aber was auch immer ich aus dem oben genannten Code und Ihre Anforderung verstehen konnte, das ist, was ich kam, so dass ich nicht sicher bin, ob das, was Sie wollen?
Sub Sample()
Dim Dict1 As Dictionary
Dim sString As String
Set Dict1 = New Dictionary
With Dict1
.CompareMode = BinaryCompare
.Add 1, "Item 1"
End With
sString = "Sid"
Debug.Print sName(Dict1)
Debug.Print sName(sString)
End Sub
Public Function sName(Inpt As Variant) As Variant
If TypeName(Inpt) = "Dictionary" Then
sName = Inpt.Item(1)
ElseIf TypeName(Inpt) = "String" Then
sName = Inpt
End If
End Function
EDIT
Wenn Sie noch 0
verwenden möchten, dann während dem Wörterbuch hinzufügen, verwenden Sie eine 0
zum Beispiel
With Dict1
.CompareMode = BinaryCompare
.Add 0, "Item 1"
End With
und dann können Sie eine 0
in der Verwendung Funktion wie unten
sName = Inpt.Item(0)
SNAPSHOT (ALLE 3 BEDINGUNGEN - VERWENDUNG VON 0 und 1)
HTH
Sid
Vielen Dank für die ausführliche Antwort! Ich werde dies als richtig markieren, sobald ich es bestätige –
, soweit ich verstehe, Wörterbuchschlüssel sind immer Text. Im obigen Codebeispiel denke ich, dass Sie "1" oder "0" verwenden müssten. Es ist auch in der Regel eine gute Idee, mit '.exists 'auf die Existenz der Schlüssel zu prüfen. – Pynner
@Pynner: Ja, Sie haben absolut Recht auf' .exists'. Ich habe absichtlich nicht ".Exist" verwendet, um die Verwendung von "0" wie in Fall 2 oben zu demonstrieren :) Wenn Sie in CASE 2 feststellen, dass '. (0)' anstelle von '. (1) 'gibt einen Null-Wert anstelle eines Fehlers. :) –