vb显示实时错误'13',类型不匹配,求问错在哪,请大神赐教

vb显示实时错误'13',类型不匹配,求问错在哪,请大神赐教,第1张

一、貌似一般没有这样写代码语句的,建议你将

c = a/b =

拆开来写,不要连成一串。

二、从定义来看,a、b、c三个变量都是 single 类型,在 vb 里没有要求必须要在使用前声明变量及其类型,而如果你声明了,那就尽量按声明的数据类型来赋值。

上面的代码中, Text1Text 得到的值是字符型,而你赋值给了一个 single 。

Text4Text = Round(c,2) 这种代码如果计算结果的话,会是个逻辑值。

总的来说,实时错误'13',类型不匹配,这种错误提示的原因就在于你没有严格按照数据类型的定义赋值。

你要参考别人VB的程序,关键二点要有

一,你的VB版本必须与别人的一致(VB各个版本间是有些不兼容的)

如你上面的程序,在VB6中肯定不能用,因为VB6

的Command_Click不能有参数的

二你的界面设计,必须与参考程序完全一致

也就是你的CommandText等控件及其名称,必须与程序一致的

col = max(a(), r, mm)应为col = max(a, r, mm)

另外unound 应为 ubound

优化:Function max(b() As Single, r As Integer, m As Integer),m可以不需要,因为m的值并不需要由外部传入,而是由b()决定的,只需要在function内部定义m即可

看不清你 只能给你演示说明下 你自己排除下问题所在

左边A变量是数值型变量 等号右边是字符串 左右两边不匹配类型 却要用右边赋值给左边就导致 类型不匹配错误

还有一种就是调用过程的时候 参数类型不匹配 如图所示

VB60中提示运行错误13是指类型不匹配错误,在查询ACCESS或者EXCEL以独占形式查询了表,找不到游标就查不到数据,ADO对于查不到记录处理时也是这样报错的。我怀疑你是把ACCESS作为数据库,他的权限只针对管理员,Guest不能共享,看数据只读

If Hour(Now) = Int(h) And Minute(Now) = Int(m) Then

改为

If Hour(Now) = Val(h) And Minute(Now) = Val(m) Then

另外

Public s1, s2, s3 As String

要改为

Public s1 As String, s2 As String, s3 As String

见补充资料

我发现有好多大学生编的VB程序都有这样的问题:

Dim a, b, c, d As String

其实这是完全错的。在这里,逗号的优先级要高于As,也就是说,上面语句相当于:

Dim a

Dim b

Dim c

Dim d As String

也就是

Dim a As Variant

Dim b As Variant

Dim c As Variant

Dim d As String

虽然在多数情况下,这么做并不会造成程序出错(因为Variant可以代替其他任何类型),但这跟你设计的初衷就有很大出入了(且不说用Variant会造成资源浪费、效率降低)。程序应该是严谨的,差之毫厘谬以千里,所以我们应该养成良好的正确的编程习惯,正确的写法应该是:

Dim a As String, b As String, c As String, d As String

补充说一句,我怀疑是不是现在大学的电脑老师就是这样教的(即Dim a, b, c, d As String)?我不知道,因为我是自学的。如果真是这样,那我对中国的教育真是失望透顶了!没救了!!!

再补充一句:要验证我说的对不对,可以用下面的代码:

Dim a, b As String

Print "a的类型是" & TypeName(a)

Print "b的类型是" & TypeName(b)

以上就是关于vb显示实时错误'13',类型不匹配,求问错在哪,请大神赐教全部的内容,包括:vb显示实时错误'13',类型不匹配,求问错在哪,请大神赐教、VB程序跳出实时错误13 类型不匹配、vb程序出现类型不匹配:缺少数组或用户定义类型 错误,求解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10100988.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存