2016-06-07 139 views
0
Private Sub UserForm_Initialize() 
    Dim a As String 
    Dim h As Double 
    Dim d As Double 
    Dim r As Double 

    a = ComboBox1.value 
    r = TextBox2.value 
    d = TextBox3.value 
    h = TextBox4.value 
End Sub 

有没有在我已经写在userform_initialize上面的代码中的任何问题.......我得到一个错误类型不匹配我肯定是没有问题的休息我的代码类型不匹配运行时错误13

前,我才定义的变量A,H,d,R在commandbutton1_click,现在我刚刚搬到他们userform_initialize和我得到这个类型不匹配错误

请帮我

回答

1

类型不匹配意味着无论如何foo.Value评估为不能被强制为Double。 (也许这是一个空白字符串)。

一种解决方法是写形式

a = 0 'The default value 
On Error Resume Next 'Switch off error handling 
a = ComboBox1.Value 
On Error Goto 0 'The idiomatic way of switching error handling back on. 

的代码或更加妥善地处理潜在的错误。 (使用Len也许?)。

+0

'IsNumeric'也是一种可能性(检测无效条目)。 – arcadeprecinct

+0

它代表ComboBox1,TextBox2,TextBox3或TextBox4。我们极客使用foo作为* metasyntactic变量*。 – Bathsheba

+0

Okk谢谢...........在另一个子命令中定义变量a,h,d,r有什么区别commandbutton1_click和在sub userform_initialize中定义变量会对它做出什么改变? –