类型不匹配是由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, ]
Len 字符串长度
Join:连接一维数组中的所有子字符串
Left,Right,Mid 截取子字符串
Space(数值) 生成空格字符串
Ucase,Lcase 大小写转换函数
Ltrim, Rtrim,Trim 删除首尾空格
Replace
参考资料来源: 百度百科-VBA (Visual Basic宏语言)
类型不匹配是由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
如果你H2这个单元格的原值是文本的话,下一句中Right(s, 10) + 1就会弹出截图所示错误
因为文本参与算术运算会出错
你可以试试将H2写一个数值验证有无问题
I的值必须大于等于3.不能小于3.否则肯定访问失败。
另外你的.Range("C3:C" & i)
写法还是写清楚
If Trim(ActiveSheet.Range("C3:C" & I).Value) = Str Then
dim m,v,b,d,c as string 声明为字符变量,没有进行赋值,下面进行数学运算时,没有办法进行默认的变量转换。
要么改成 dim m,v,b,d,c as double 或对各变量进行数字赋值。