【发布时间】:2017-10-13 01:48:18
【问题描述】:
我正在尝试将从用户窗体中的 refedit 控件指定的范围传递给变量数组。我有以下代码:
Private Sub CommandButton1_Click()
Dim y0 As Variant
Dim X0 As Variant
y0 = Range(RefEdit1.Value)
X0 = Range(RefEdit2.Value)
MsgBox (TypeName(y0))
Call DataCheck
Me.Hide
End Sub
消息框显示 y0 确实是 Variant(),但是,当我尝试执行诸如计算 y0 的尺寸或使用我拥有的 PrintArray 子例程打印它时(这对其他数组有效) ,我收到错误消息。见下文:
Private Sub DataCheck()
'Check dimensions of original data
y0N = UBound(y0, 1)
y0k = UBound(y0, 2)
'X0N = UBound(X0, 1) - LBound(X0, 1) + 1
'X0k = UBound(X0, 2) - LBound(X0, 2) + 1
Debug.Print "N y0 = "; y0N
Debug.Print "k y0 = "; y0k
'Debug.Print "N y0 = "; X0N
'Debug.Print "k y0 = "; X0k
End Sub
我收到“运行时错误 '13'”消息。另外,当我将鼠标悬停在此语句上时:
y0N = UBound(y0, 1)
我收到 类型不匹配 错误。
对这里发生的事情有任何想法吗?感谢您提供任何帮助。
最好的,
丹
【问题讨论】:
-
您在哪里将变量
x0和y0传递到Sub DataCheck? -
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请阅读如何创建minimal reproducible example 和How to Ask。