EXcel vba :运行时错误‘13’,类型不匹配

PrivateSubCommandButton2_Click()Dimm,V,b,d,CAsStringa=(0.52-b*C)*V/(100*d)Text6.Text=... Private Sub CommandButton2_Click()
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
展开
 我来答
四舍五不入6
高粉答主

2019-10-08 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2.2万
展开全部

类型不匹配是由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宏语言)

百度网友cc16d5c
推荐于2017-09-10 · TA获得超过731个赞
知道小有建树答主
回答量:647
采纳率:50%
帮助的人:533万
展开全部
类型不匹配是由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
追问
出错变量未定义Private Sub CommandButton2_Click()

m = (0.52 - b * C) * V / (100 * d)
Text6.Text = m

End Sub
追答
如果有Option Explicit语句,就表示变量必须在声明之后使用;如没有Option Explicit,就表示可以直接使用变量且不必事先声明。因此,请检查窗体模块代码的顶部是否有Option Explicit语句
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大肚有话说
2019-08-08 · 生活不止有眼前的苟且,还有诗和远方
大肚有话说
采纳数:1895 获赞数:4626

向TA提问 私信TA
展开全部

如果你H2这个单元格的原值是文本的话,下一句中Right(s, 10) + 1就会弹出截图所示错误

因为文本参与算术运算会出错

你可以试试将H2写一个数值验证有无问题

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lanniao007
2011-10-05 · TA获得超过1012个赞
知道小有建树答主
回答量:1489
采纳率:40%
帮助的人:444万
展开全部
I的值必须大于等于3.不能小于3.否则肯定访问失败。
另外你的.Range("C3:C" & i)
写法还是写清楚
If Trim(ActiveSheet.Range("C3:C" & I).Value) = Str Then
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wagpin
2014-08-10 · 超过34用户采纳过TA的回答
知道答主
回答量:210
采纳率:0%
帮助的人:68.3万
展开全部
dim m,v,b,d,c as string 声明为字符变量,没有进行赋值,下面进行数学运算时,没有办法进行默认的变量转换。
要么改成 dim m,v,b,d,c as double 或对各变量进行数字赋值。
更多追问追答
追问
改成 dim m,v,b,d,c as double后,溢出了,怎麽办
追答
分母不能为0,必须先给一个值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式