Excel 如何将范围对象传递给VBA中的属性?
虽然经过了彻底的搜索,但我并没有通过属性将范围传递给userform。我得到了所需的错误对象。代码在userform中,参数prange是全局的。任何帮助都将不胜感激。谢谢Excel 如何将范围对象传递给VBA中的属性?,excel,userform,vba,Excel,Userform,Vba,虽然经过了彻底的搜索,但我并没有通过属性将范围传递给userform。我得到了所需的错误对象。代码在userform中,参数prange是全局的。任何帮助都将不胜感激。谢谢 Public Property Get MyRng() As Range Set MyRng = r1 End Property Public Property Set MyRng(ByRef prange As Range) Set r1 = prange End Property 这应该是userform中的
Public Property Get MyRng() As Range
Set MyRng = r1
End Property
Public Property Set MyRng(ByRef prange As Range)
Set r1 = prange
End Property
这应该是userform中的代码
Option Explicit
Dim mRng As Range
Public Property Get myRng() As Range
Set myRng = mRng
End Property
Public Property Set myRng(nRg As Range)
Set mRng = nRg
End Property
只是一个简单的例子
Option Explicit
Sub Test()
Dim frm As UserForm1
Dim rg As Range
Set frm = New UserForm1
Set frm.myRng = Range("A1")
Set rg = frm.myRng
Debug.Print rg.Address
End Sub
仍然没有更改,同时我怀疑您是否可以使用属性在VBA中传递范围对象。什么是不更改。您可以使用属性来传递范围对象。我的意思是,我仍然会得到相同的错误,运行时错误91,对象变量未设置。对不起,但是您从哪里得到此错误?您以前没有提到运行时错误!如果你使用全局变量prange,你就走错了方向。然后看看为什么使用默认实例通常不是一个好主意。