Excel VBA类模块:从类内的对象获取属性
我有一个包含一些属性和控制元素的类模块。如何在类级事件中获取这些控件的属性值?我试过了Excel VBA类模块:从类内的对象获取属性,excel,class,properties,vba,Excel,Class,Properties,Vba,我有一个包含一些属性和控制元素的类模块。如何在类级事件中获取这些控件的属性值?我试过了 me.property 或 但不起作用。我认为应该有一种方法来处理模块中类模块的每个实例的属性,不是吗 我的班级模块:Cworker Public WithEvents img1 As MSForms.Image Private AcnS Dim rng1 As Range, rng2 As Range, rng3 As Range ' Property Definitions Public Prop
me.property
或
但不起作用。我认为应该有一种方法来处理模块中类模块的每个实例的属性,不是吗
我的班级模块:Cworker
Public WithEvents img1 As MSForms.Image
Private AcnS
Dim rng1 As Range, rng2 As Range, rng3 As Range
' Property Definitions
Public Property Get Aircraft() As String
Aircraft = Acn
End Property
Public Property Let Aircraft(Value As String)
Acn = Value
End Property
' Events Procedures
Private Sub img1_Click() ' Showing Progress Form
With ThisWorkbook.Sheets("Performance")
Set rng1 = .Range("ProgCrit")
Set rng2 = .Range("Progress")
Set rng3 = .Range("op_log")
End With
frmprogress.LAc = Me.Aircraft
rng1.Cells(2, 1) = Me.Aircraft
rng3.AdvancedFilter xlFilterCopy, rng1, rng2
oprecord.Calculate
frmprogress.Show
End Sub
塔恩克斯,
M我想你在第二行有一个打字错误: 我认为,根据我的测试,您可以引用me.property、不带前缀的属性本身以及您指定的类变量。你也可以试试
Public WithEvents img1 As MSForms.Image
Private Acn$ ' As String if you meant!
Dim rng1 As Range, rng2 As Range, rng3 As Range
' Property Definitions
Public Property Get Aircraft() As String
Aircraft = Acn
End Property
Public Property Let Aircraft(Value As String)
Acn = Value
End Property
' Events Procedures
Private Sub img1_Click() ' Showing Progress Form
With ThisWorkbook.Sheets("Performance")
Set rng1 = .Range("ProgCrit")
Set rng2 = .Range("Progress")
Set rng3 = .Range("op_log")
End With
frmprogress.LAc = Me.Aircraft
rng1.Cells(2, 1) = Me.Aircraft
rng3.AdvancedFilter xlFilterCopy, rng1, rng2
oprecord.Calculate
frmprogress.Show
End Sub
请分享类代码,至少是显示声明和定义的相关部分。我添加了代码,我注意到我的变量声明中有一个拼写错误,也许这就是问题所在。我会通知你的。是的,。。。。。。。。。。。。。。。。那是我声明中的一个错误。我在字符串变量类型中添加了S而不是$as!!!你可以提到这一点,所以我会接受这一点作为答案。是的,谢谢,我已经知道了,你可以在上面的帖子中看到我的评论。
Public WithEvents img1 As MSForms.Image
Private Acn$ ' As String if you meant!
Dim rng1 As Range, rng2 As Range, rng3 As Range
' Property Definitions
Public Property Get Aircraft() As String
Aircraft = Acn
End Property
Public Property Let Aircraft(Value As String)
Acn = Value
End Property
' Events Procedures
Private Sub img1_Click() ' Showing Progress Form
With ThisWorkbook.Sheets("Performance")
Set rng1 = .Range("ProgCrit")
Set rng2 = .Range("Progress")
Set rng3 = .Range("op_log")
End With
frmprogress.LAc = Me.Aircraft
rng1.Cells(2, 1) = Me.Aircraft
rng3.AdvancedFilter xlFilterCopy, rng1, rng2
oprecord.Calculate
frmprogress.Show
End Sub