`
bolutes
  • 浏览: 868438 次
文章分类
社区版块
存档分类
最新评论

关于VB提示ByRef参数类型不符的分析

 
阅读更多

在VB中执行过程或函数时,提示"ByRef参数类型不符"

分析问题主要由于对应参数的类型不符造成的。造成这种情况一般有几种情况:

1。传递参数未定义类型,如果参数在调用前未定义类型,系统自动将它定义为Variant类型,由于与过程或函数中的对就参数类型不相同,所以提示"ByRef参数类型不符"

2。传递参数类型已经定义,但由于定义方法不对,所以提示"ByRef参数类型不符"。具体情况如下:

当VB中如此定义变量时,将会出现以上错误信息的出现

Private Sub Command1_Click()
Dim i , j As Integer
i = 3
j = 4
Call get1(i, j)
Text1.Text = i
End Sub

Private Sub get1(ByRef para1 As Integer, para2 As Integer)
para1 = para1 + para2
End Sub

如果将 Dim i , j As Integer 改为

Dim i As Integer

Dim i As Integer

程序执行正常。也就是说,第一种方法的变量定义,只是对 J 做了定义,并未对前面的 I 进行定义

一般在过程和函数中定义参数时采用ByRef,则要求参数声明的类型和实际参数的类型完全相同,否则VB就会报告错误。

分享到:
评论

相关推荐

    VB参数传递(传值ByVal与传址ByRef)[整理].pdf

    VB参数传递(传值ByVal与传址ByRef)[整理].pdf

    vb 总是提示“类型不匹配,缺少数组或用户定义类型”

    vb中定义如下: 类模块Class1中代码如下: Dim aa() As String Public Sub setName(ByRef str() As String) ...运行时怎么总是提示“类型不匹配,缺少数组或用户定义类型”啊?实在不知道错在哪里了??

    VB.net中ByVal ByRef 形参 实参的区别,带源代码

    用实际代码的形式阐述了ByVal和ByRef的区别以及形参和实参的区别。 源码在VB.net 2010下调试通过。 欢迎指正!

    关于 byval 与 byref 的区别分析总结

    关于 byval 与 byref 的区别分析总结

    VB API 编程声明函数时注意使用ByVal和ByRef.doc

    VB API 编程声明函数时注意使用ByVal和ByRef

    VB.net中ByVal ByRef ;形参 实参 区别的描述,带源代码

    用代码的形式阐述了ByVal和ByRef的区别以及形参和实参的区别。源码在VB.net 2010下调试通过。 欢迎指正!

    将微软官方的关于ByVal和ByRef的区别翻译了一下,含代码

    将微软官方的关于ByVal和ByRef的区别翻译了一下,含代码

    Base64.dll(Base64编解码,附VB示例)

    Base64编码和解码库,支持API调用和COM调用,输入参数支持VB的字节数组Byte(),输出支持VB的字节数组Byte()和字符串String。编码速度大约为每秒钟256MB~380MB。 内附一个比较三方提供的比较经典的库VBVorLib,其...

    在VB下演示参数的混合使用方法.rar

    VB参数混合使用的一个方法演示,附上相关的代码,演示了子过程运算前形参的值、子过程运算后形参的值、主程序调用前变量的值、主程序调用后变量的值,以下为完整的VB代码:  Private Sub mix(ByVal x As Integer, ...

    .Net 下区别使用 ByRef/ByVal 的重要性 分享

    一直以来在 VB6 下,参数默认都是按照 ByRef 传送的,(即按地址传送) 而在 .Net(C#,VB.Net) 下, 参数默认是使用 ByVal (即按值传送) 传送的,一直没怎么注意。这些天在优化程序时发现 当传送 大变量时,使用默认...

    VB编程常用的模块及CTL控件集打包.rar

    所以声明API的时候一定要byval,大家知道空着不写就是默认byref ‘下面还有几处不该传址的参数,只要搞清楚API函数要的到底是什么值才可以确定到底传值还是传址,API浏览器仅能供参考,还是要仔细阅读MSDN MyStartAddr =...

    vb调用fortran

    Private Declare Sub forcx B Lib "dll.dll" Alias "_ FORCX @12" (ByRef a As integer, ByRef b As integer, ByRef c As integer) Sub callfor() Dim a as integer, b as integer ,c as integer B=1 : c=2 Call ...

    JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享

    对于“JavaScript 函数参数是传值(byVal)还是传址(byRef)”这个问题,普遍存在一个误区:number,string等“简单类型”是传值,Number, String, Object, Array等“复杂类型”是传址。这样不对吗?为什么会有这样的...

    VB6常用方法汇编

    VB6常用方法汇编 基本语法  过程  Sub abc (i As Long )   语句  End Sub  调用:abc ii  或者:call abc(ii)  如果要返回参数变化:  Sub abcd ( ByRef i As Long )   语句  End Sub  函数  Function ...

    Using DIB Sections in VB

    Using DIB Sections in VB An Easy to Use Class for manipulating DIBSections plus a blindingly quick technique for updating the bits <br> <br> <br> Updated! 17 February 1999 The...

    VB字符串处理函数大全

    VB字符串处理函数大全:mid(字符串,从第几个开始,长度) ByRef 在[字符串]中[从第几个开始]取出[长度个字符串]

    VB6增强搜索插件 4.13.0.130

    传递使用频率较高函数的字符串参数 对齐升级提示对话框中的版本号 补充了一些注释 去掉了默认标签页 增加关闭其它页面的功能 将TabData?更名为Page 将LogClassInitialize?和LogClassTerminate?函数放入标准...

    NTFS文件附加数据流读写类

    参数列表 类型 传递方式 参数说明 sStreamName String Byval 流文件名 4.3.2 GetNTFSStreamSize(ByVal sStreamName As String) As Long 获取指定数据流的大小,返回实际大小,执行失败返回-1 参数列表 类型 传递...

    VB LED显示控件(仿Raize))1.3

    这是对之前的版本的升级,上一个版本在实际使用中存在一个bug,就是在低配置的电脑上运行的时候会出现溢出的问题,经过多次研究是由于在绘图函数里使用了byval而不是byref,产生过大的运算量而造成的,该版本修正了...

Global site tag (gtag.js) - Google Analytics