VBA-将范围存储到用户类的范围属性中
我有一个具有以下定义的类:VBA-将范围存储到用户类的范围属性中,vba,excel,Vba,Excel,我有一个具有以下定义的类: Private pvtRngTest1 As Range Public Property Get RngTest1() As Range Set RngTest1 = pvtRngTest End Property Public Property Set RngTest1(ByVal rng As Range) Set pvtRngTest1 = rng End Property 当我使用这个类时,我尝试: Sub FindAllTablesOn
Private pvtRngTest1 As Range
Public Property Get RngTest1() As Range
Set RngTest1 = pvtRngTest
End Property
Public Property Set RngTest1(ByVal rng As Range)
Set pvtRngTest1 = rng
End Property
当我使用这个类时,我尝试:
Sub FindAllTablesOnSheet(oSh As Worksheet)
Dim oLo As ListObject
For Each oLo In oSh.ListObjects
MsgBox "Table found: " & oLo.Name & ", " & oLo.Range.Address
Dim sr As SheetRanges
Set sr = New SheetRanges
Set sr.RngTest1 = oLo.Range
MsgBox sr.RngTest1.Address
Next
End Sub
我得到一个错误:objectrequired(在下一条语句的最后一行)
有人能帮我解释一下吗?我相信我正确设置了Range属性,设置时没有错误,但是我无法访问该属性的地址。如上所述,这是输入错误。自从我研究VBA并忽略了选项显式的好处以来,大约有10年了S如果您在每个模块的顶部使用了
选项Explicit
,您会自己发现一个输入错误`Set RngTest1=pvtRngTest`->`Set RngTest1=pvtRngTest1`,谢谢!我现在用它来避免另一个头痛。