是否可以使用userform属性删除字典中的项目?

时间:2017-04-11 18:54:02

标签: vba dictionary

所以我试图通过userform中的属性用字典键删除字典中的项目。到目前为止,我已成功在字典中添加新项目,在字典中计数项目并获取具有userform属性的项目。所以这一切都很实用,但是我无法使删除(键)功能正常。

这是我的userform中的属性。 (也许我应该使用get属性?):

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

以下是我如何致电我的财产:

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

我收到编译错误:

  

Invalid use of property in VBA

1 个答案:

答案 0 :(得分:1)

我同意Doug Glancy,我认为你应该把它变成一个功能。我不认为你的方法很好。您遇到问题的原因是因为您试图将属性视为函数。您可以使代码以这种方式工作:UBidStatus.Materialremove = PartNumber但我强烈反对这一点,为了下一个开发人员,他必须在您之后查看代码并弄清楚它的内容是什么,因为您尝试做的是什么没有逻辑意义。 您应该将该属性转换为函数。您需要赋值运算符才能使该行有效,因为这是Let属性语句的目的:为属性赋值。但是,由于您试图强制某个属性像函数一样运行,当有人试图读取代码时它没有任何意义。