先来看看微软官方的说明:

目录内容

<style>.tocTitle, #tocDiv{display: none;}</style>

概要

在 Excel 中,当过程的 Microsoft Visual Basic for Applications 将传递一个数组的值给另一个数组,如果两个数组的数据类型不兼容,您可能会收到以下错误消息之一:

类型不匹配: 数组或用户定义类型预期。
-或者-
编译错误:
类型不匹配: 数组或预期的用户定义类型

这些错误消息是不清楚。更准确的错误消息是如下:

类型不匹配: 不兼容的类型的数组

解决方案

要确保两个数组的数据类型是兼容的具有相同的数据类型这两个数组的尺寸。

更多信息

重现问题的步骤

  1. 在 Microsoft Excel 中创建一个新工作簿。
  2. 从插入菜单中,选择宏,然后选择模块。

    在 Microsoft Excel 97 中,请按 ALT + F11 来激活 Visual Basic 编辑器中。然后,在插入菜单中单击模块。

  3. 在模块中键入以下过程:
          Sub First()
    Dim A(1 to 20) As Double
    Second A()
    End Sub Sub Second(B() As Single)
    End Sub
  4. 从工具菜单中,选择宏。选择首先,名为的宏,然后选择运行。

    在 Microsoft Excel 97 中,请单击工具菜单上的宏。首先,单击然后单击运行。

    此时,您应该收到上述错误消息之一。

正确的语法是有兼容两个数组的数据类型。例如,键入下面的过程与上面的示例相同的模块工作表上。

    Sub Correct()
Dim A(1 to 20) As Double
Example A()
End Sub Sub Example(B() As Double)
End Sub

注: 数据类型,两个数组是Double.

出处:http://support.microsoft.com/kb/121114/

=============================================================

下面再看看网上其他人的解释,及解决方法

'简单的测试程序
Private Sub Form_Load()
    Dim ii As Integer
    Dim ba(), bb() As Byte
    ReDim ba(9)
    ReDim bb(9)
    For ii = 0 To 9
ba(ii) = 3 * ii + 2
    Next
    Call ttsub(ba(), bb())
End Sub

Private Sub ttsub(a() As Byte, b() As Byte)
    Dim aa As Byte
    For aa = 0 To 9
        b(aa) = a(aa) + 1
    Next
End Sub

调试时提示下述错误:
compile error:
type mismatch: array or user-defined type expected

错误指向Call ttsub(ba(), bb())一句中的ba()
请问这段程序哪儿错了?该怎么改?

解决方法:

Dim ba(), bb() As Byte
这个是错误的.要写就写全,因为vb默认是变体Variant类型的.
所以千万不能马虎,得写Dim ba() As Byte, bb() As Byte
提问者评价:原来是这样,感谢!

出处:http://zhidao.baidu.com/link?url=nF7Dig7c3aSIY5LbYoZ4oG-dGEUG1sHeWB3wS8rabMAmtAJHcH0L5r_o6nsJ-23Pv4LrMjxA9r_Ago0k6RLtxK

vba传递参数类型错误的更多相关文章

  1. python限定方法参数类型、返回值类型、变量类型等

    typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints) 类型检查,防止运行时出现参数和返回值类型.变量类型不符合. 作为开发文档附加说明,方 ...

  2. spring参数类型异常输出(二), SpringMvc参数类型转换错误输出(二)

    spring参数类型异常输出(二), SpringMvc参数类型转换错误输出(二) >>>>>>>>>>>>>>&g ...

  3. spring参数类型异常输出,SpringMvc参数类型转换错误输出

    spring参数类型异常输出, SpringMvc参数类型转换错误输出 >>>>>>>>>>>>>>>> ...

  4. c#基础语言编程-按值类型和引用类型传递参数

    引言 在介绍传递参数介绍前,请明白参数类型和传递方式是不同的.传递方式分为按值类型和引用类型传递参数.参数类型有值类型和引用类型,这个和C++是不同的.这里的传递方式对应c++中的深复制和浅复制. 两 ...

  5. PLS-00306: 调用 'SYNCRN' 时参数个数或类型错误

    System.Data.OracleClient.OracleException (0x80131938): ORA-00604: 递归 SQL 级别 1 出现错误 ORA-06550: 第 1 行, ...

  6. 复用$.ajax方式传递参数错误处理

    1.封装后的方法,在 data:inData 传递参数的方式和一般不一样,如果不注意会出现错误. function getDataByJsonP(methName, inData, fn) { $.a ...

  7. 记一次WinForm程序中主进程打开子进程并传递参数的操作过程(进程间传递参数)

    目标:想在WinForm程序之间传递参数.以便子进程作出相应的处理. 一种错误的方法 父进程的主程序: ProcessStartInfo psi = new ProcessStartInfo(); p ...

  8. mybatis 传递参数的方法总结

    有三种mybatis传递参数的方式: 第一种 mybatis传入参数是有序号的,可以直接用序号取得参数 User selectUser(String name,String area); 可以在xml ...

  9. Qt 信号槽如何传递参数(或带参数的信号槽)

                                    信号槽如何传递参数(或带参数的信号槽) 利用Qt进行程序开发时,有时需要信号槽来完成参数传递.带参数的信号槽在使用时,有几点需要注意的地 ...

随机推荐

  1. React Native常用组件之TabBarIOS、TabBarIOS.Item组件、Navigator组件、NavigatorIOS组件、React Navigation第三方

    以下内容为老版本React Native,faceBook已经有了新的导航组件,请移步其他博客参考>>[我是传送门] 参考资料:React Navigation  react-native ...

  2. HttpStatusCode

    https://docs.microsoft.com/en-us/dotnet/api/system.net.httpstatuscode?view=netframework-4.7.2 422 Un ...

  3. 初入Spring-boot(二)

    一.入口类 Spring boot通常有一个名为*Application的入口类,入口类里有一个main方法,这个main方法其实就是一个标准的java应用的入口方法.在main方法中使用Spring ...

  4. IT行业的一些专业术语

    SDK:SDK(Software Development Kit, 即软件开发工具包 )一般是一些被软件工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合. 参考:h ...

  5. 线段树 - HDU1166 - 敌兵布阵

    2017-07-29 16:41:00 writer:pprp 线段树跟区间操作相关,想要在题目限定的时间内解决问题就需要用线段树这种数据结构来解决: 线段树是一种二叉平衡树 参考书目:张新华的< ...

  6. 我的nodejs 快速入门

    每行以封号结尾(可有可无) 变量定义没有类型 都用var 或者直接const log打印:console.log(db); 内置属性这样写法:__filename.__dirname等 functio ...

  7. JNI_Z_07_方法的操作(没有String类型的参数)_参数的传递方式

    1. 2.VC6(CPP)的DLL代码: #include<stdio.h> #include "jniZ_TjniMethod02.h" JNIEXPORT void ...

  8. thinkphp <eq> <if>标签 condition中可以写PHP的判断逻辑

    <ul> <volist name="monthArray" id="monthItem"> <if condition=&quo ...

  9. 给virtualbox里linux添加共享文件夹

    首先,必须要有已经在VirtualBox中安装好的Ubuntu系统,才能按照以下步骤操作,具体怎样在VirtualBox中安装Ubuntu系统百度经验里已经有很多,大家可以自己查询参照.   打开虚拟 ...

  10. python面向对象编程学习

    python面向对象编程 基本概念理解 面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作 ...