Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA类模块:从类内的对象获取属性_Excel_Class_Properties_Vba - Fatal编程技术网

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