
一、貌似一般没有这样写代码语句的,建议你将
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程序出现类型不匹配:缺少数组或用户定义类型 错误,求解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)