首页 > 解决方案 > VBA:无法在类中设置结构的变量

问题描述

我有一个类,实现了两个接口,一个接口用于正常使用,一个接口只显示一个函数来创建具有初始参数的类。该类有一个字段,它是一个结构,其中包含两个变量,我使用类的 Get 属性来获取结构,然后使用点符号访问结构中的字段,然后我试图将其设置为一个数字,但它永远不会起作用。如果我尝试使用类中的私有变量访问结构,它可以工作,但我希望保持一致并且只使用属性在Create函数中修改它。

Public Function Create(WorksheetName As String, Optional CurrentRow As Long = 4) As ISheetInfo
    With New clsSheetInfo
        Set .WS = ThisWorkbook.Worksheets(WorksheetName)
        Set .Cols = CreateColumnDictionary(.WS, 3)
        Let .Rows.Current = CurrentRow
        Let .Rows.Final = .WS.Cells(.WS.Rows.Count, 1).End(xlUp).Row
        Set Create = .Self
    End With
End Function

当我单步执行时,它首先转到此属性(RowData是具有两个字段的 UDT,.Current并且.Final

Property Get Rows() As RowData
     Rows = pRows
End Property

但是后来赋值后,.Rows.Current还是0,不知道为什么。

标签: excelvbainterfacestructure

解决方案


推荐阅读