EXcel vba :运行时错误‘13’,类型不匹配
Dim m, V, b, d, C As String
a = (0.52 - b * C) * V / (100 * d)
Text6.Text = a
End Sub
Private Sub CommandButton2_Click()
Dim m, V, b, d, C As String
出错语句m= (0.52 - b * C) * V / (100 * d)
Text6.Text = m
End Sub 展开
类型不匹配是由C As String引起的,因为声明C后没有给他赋值为有效的数值字串,计算时,数值型的字串会自动转换成响应的数值参与运算,而零长度的字串是不被支持的。
如变量声明改成Dim m,V,b,d,C,其他不变,则会出现"溢出“错误,因为100*d=0(除数为0)。
如变量声明改成Dim m As Integer,V As Integer,b As Integer,d As Integer,C As Integer,其他不变,也会出现”溢出“错误,因为100*d=0(除数为0)。
要排除错误,必须确保每个变量在计算时能正确进行类型转换,同时,还必须确保数值大小在对应数字类型的大小范围之内,有除法时,除数必须不等于0。
扩展资料:
常用内置函数
舍入函数:Fix 向0取整,Int向下取整, Round四舍五入
Rnd 返回0-1内的单精度随机数
字符串函数:
Filter:对字符串的一维数组的过滤
InStr([Start, ]<Str1>,<Str2>[, Compare])与InStrRev: 查找子串
Len 字符串长度
Join:连接一维数组中的所有子字符串
Left,Right,Mid 截取子字符串
Space(数值) 生成空格字符串
Ucase,Lcase 大小写转换函数
Ltrim, Rtrim,Trim 删除首尾空格
Replace
参考资料来源: 百度百科-VBA (Visual Basic宏语言)
如变量声明改成Dim m,V,b,d,C,其他不变,则会出现"溢出“错误,因为100*d=0(除数为0)
如变量声明改成Dim m As Integer,V As Integer,b As Integer,d As Integer,C As Integer,其他不变,也会出现”溢出“错误,因为100*d=0(除数为0)
要排除错误,必须确保每个变量在计算时能正确进行类型转换,同时,还必须确保数值大小在对应数字类型的大小范围之内,有除法时,除数必须不等于0
出错变量未定义Private Sub CommandButton2_Click()
m = (0.52 - b * C) * V / (100 * d)
Text6.Text = m
End Sub
如果有Option Explicit语句,就表示变量必须在声明之后使用;如没有Option Explicit,就表示可以直接使用变量且不必事先声明。因此,请检查窗体模块代码的顶部是否有Option Explicit语句
如果你H2这个单元格的原值是文本的话,下一句中Right(s, 10) + 1就会弹出截图所示错误
因为文本参与算术运算会出错
你可以试试将H2写一个数值验证有无问题
另外你的.Range("C3:C" & i)
写法还是写清楚
If Trim(ActiveSheet.Range("C3:C" & I).Value) = Str Then
要么改成 dim m,v,b,d,c as double 或对各变量进行数字赋值。
改成 dim m,v,b,d,c as double后,溢出了,怎麽办
分母不能为0,必须先给一个值