2017-04-11 1 views
1

Also versuche ich ein Element in einem Wörterbuch mit einem Wörterbuchschlüssel über eine Eigenschaft in einem Benutzerformular zu entfernen. Bisher ist es mir gelungen, ein neues Element im Wörterbuch hinzuzufügen, Element im Wörterbuch zu zählen und ein Element mit der Eigenschaft userform zu erhalten. Also das alles ist funktional, aber ich kann nicht das Entfernen (Schlüssel) funktional.Ist es möglich, eine Benutzerformular-Eigenschaft zu verwenden, um ein Element in einem Wörterbuch zu entfernen?

Hier ist die Eigenschaft in meinem Benutzerformular. (Vielleicht sollte ich eine get-Eigenschaft verwenden?):

Public Property Let Materialremove(ByVal PartNumber As String) 
    DicMaterial.Remove (PartNumber) 
End Property 

Hier ist, wie ich für mein Eigentum nennen:

If UBidStatus.Materialexists(PartNumber) Then 
    UBidStatus.Materialremove (PartNumber) 
End If 

ich einen Kompilierungsfehler erhalten:

Invalid use of property in VBA

+0

Sollte das nicht "... (ByVal PartNumber als VARIANT)" sein? – Jeeped

+0

'Wenn DicMaterial.Exists (PartNumber) Dann DicMaterial.Remove PartNumber' – Jeeped

+1

Ich weiß nicht, ob dies das Problem ist, aber ich würde es zu einer Funktion machen. –

Antwort

1

Ich stimme Doug Glancy, ich denke du solltest es in eine Funktion verwandeln. Ich denke nicht, dass Ihre Herangehensweise gut ist. Der Grund, warum Sie Probleme haben, liegt darin, dass Sie versuchen, eine Eigenschaft wie eine Funktion zu behandeln. Sie können den Code auf diese Weise arbeiten lassen: UBidStatus.Materialremove = PartNumber, aber ich rate dringend davon ab, dem nächsten Entwickler, der sich den Code nach Ihnen ansehen muss, zu überlegen, was er sagt, weil das, was Sie zu tun versuchen, keinen logischen Sinn ergibt. Sie sollten die Eigenschaft in eine Funktion verwandeln. Sie benötigen den Zuweisungsoperator, um die Zeile zu arbeiten, da dies der Zweck einer Eigenschaft-Anweisung Let ist, um einer Eigenschaft einen Wert zuzuweisen. Aber da Sie versuchen, eine Eigenschaft zu zwingen, sich wie eine Funktion zu verhalten, macht es keinen Sinn, wenn jemand versucht, den Code zu lesen.

Verwandte Themen