我编写了一个仅应返回范围的函数。但是我收到运行时错误91(对象变量或未设置块)。自调试器说起,我不明白为什么要同时设置该值和Nothing。
此代码背后的想法如下: 我有一个用户表单,用户可以选择最多6列,列A始终包含在内,因此不是可选的。我想返回该选择的范围。
screenshot, debugger values at bottom right
Private Function calcGraphRange() As range
Dim rng0, rng1, rng2, rng3, rng4, rng5, rng6 As range
Debug.Assert (Me.CheckBox1.Value = True)
Set rng0 = range("A:A")
Set rng1 = range("B:B")
Set rng2 = range("C:C")
Set rng3 = range("D:D")
Set rng4 = range("E:E")
Set rng5 = range("F:F")
Set rng6 = range("G:G")
Set calcGraphRange = Application.Union(rng0, _
IIf(Me.CheckBox1.Value = True, rng1, rng0), _
IIf(Me.CheckBox2.Value = True, rng2, rng0), _
IIf(Me.CheckBox3.Value = True, rng3, rng0), _
IIf(Me.CheckBox4.Value = True, rng4, rng0), _
IIf(Me.CheckBox5.Value = True, rng5, rng0), _
IIf(Me.CheckBox6.Value = True, rng6, rng0))
End Function
这是我到目前为止所做的:
我将不胜感激任何帮助或提示。祝你有美好的一天。