在VBA中区分类和对象名称

时间:2017-03-09 11:35:31

标签: vba excel-vba excel

我正在使用Excel VBA。

此属性设置专用直方图

Private Histogram As Histogram
Public Property Let CreateSB_Solution(DataSet As Histogram)
    Set Histogram = DataSet
End Property

这不属性设置私有直方图

Private Histogram As Histogram
Public Property Let CreateSB_Solution(Histogram As Histogram)
    Set Histogram = Histogram
End Property

我知道我错过了一些细微的差别,但找不到合适的搜索条件来找到它。

这不编译:找不到方法或数据成员。

Private Histogram As Histogram
Public Property Let CreateSB_Solution(Histogram As Histogram)
    Set Me.Histogram = Histogram
End Property

1 个答案:

答案 0 :(得分:1)

问题是Set Histogram = Histogram - 什么被设定为什么?直方图在左边,哪个在右边? - 实际上,两者都保持参数的值,因为最本地的变量获胜。

您可以通过将Private Histogram ..更改为Public来制作您的工作,但显然这会产生影响,或者您可以在CreateSB_Solution内使用间接调用私有财产来进行分配。

也许最好的解决方案是不要以一种可能导致这些类型问题的方式命名事物,改变代码结构只是为了容纳更具视觉吸引力的monikers是一个坏主意。

下面的任何一个都可以解决问题。

CreateSB_Solution(fromHistogram As Histogram)

Private CurrentHistogram As Histogram