vba传递参数类型错误
先来看看微软官方的说明:
目录内容
<style>.tocTitle, #tocDiv{display: none;}</style>
概要
类型不匹配: 数组或预期的用户定义类型
这些错误消息是不清楚。更准确的错误消息是如下:
解决方案
更多信息
重现问题的步骤
- 在 Microsoft Excel 中创建一个新工作簿。
- 从插入菜单中,选择宏,然后选择模块。
在 Microsoft Excel 97 中,请按 ALT + F11 来激活 Visual Basic 编辑器中。然后,在插入菜单中单击模块。
- 在模块中键入以下过程:
Sub First()
Dim A(1 to 20) As Double
Second A()
End Sub Sub Second(B() As Single)
End Sub - 从工具菜单中,选择宏。选择首先,名为的宏,然后选择运行。
在 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
- 提问者评价:原来是这样,感谢!
vba传递参数类型错误的更多相关文章
- python限定方法参数类型、返回值类型、变量类型等
typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints) 类型检查,防止运行时出现参数和返回值类型.变量类型不符合. 作为开发文档附加说明,方 ...
- spring参数类型异常输出(二), SpringMvc参数类型转换错误输出(二)
spring参数类型异常输出(二), SpringMvc参数类型转换错误输出(二) >>>>>>>>>>>>>>&g ...
- spring参数类型异常输出,SpringMvc参数类型转换错误输出
spring参数类型异常输出, SpringMvc参数类型转换错误输出 >>>>>>>>>>>>>>>> ...
- c#基础语言编程-按值类型和引用类型传递参数
引言 在介绍传递参数介绍前,请明白参数类型和传递方式是不同的.传递方式分为按值类型和引用类型传递参数.参数类型有值类型和引用类型,这个和C++是不同的.这里的传递方式对应c++中的深复制和浅复制. 两 ...
- PLS-00306: 调用 'SYNCRN' 时参数个数或类型错误
System.Data.OracleClient.OracleException (0x80131938): ORA-00604: 递归 SQL 级别 1 出现错误 ORA-06550: 第 1 行, ...
- 复用$.ajax方式传递参数错误处理
1.封装后的方法,在 data:inData 传递参数的方式和一般不一样,如果不注意会出现错误. function getDataByJsonP(methName, inData, fn) { $.a ...
- 记一次WinForm程序中主进程打开子进程并传递参数的操作过程(进程间传递参数)
目标:想在WinForm程序之间传递参数.以便子进程作出相应的处理. 一种错误的方法 父进程的主程序: ProcessStartInfo psi = new ProcessStartInfo(); p ...
- mybatis 传递参数的方法总结
有三种mybatis传递参数的方式: 第一种 mybatis传入参数是有序号的,可以直接用序号取得参数 User selectUser(String name,String area); 可以在xml ...
- Qt 信号槽如何传递参数(或带参数的信号槽)
信号槽如何传递参数(或带参数的信号槽) 利用Qt进行程序开发时,有时需要信号槽来完成参数传递.带参数的信号槽在使用时,有几点需要注意的地 ...
随机推荐
- Linux常用命令--文件(夹)查找之find命令
Linux系统用得越久,就会发现这真的是一个很优秀的系统,各种方便各种实用各种高效率. 晚饭前写一下find命令的笔记. 其实这篇笔记,也是看到一篇外文博客,写得不错,自己拿来练一练,然后才顺便写篇笔 ...
- Spring容器创建过程
Spring容器的refresh() 创建刷新 1 prepareRefresh() 刷新前的预处理 1) initProPertySources() 初始化一些属性设置: 子类定义个性化的属性 ...
- Activity启动的四种方式
Activity启动方式有四种,分别是: standardsingleTopsingleTasksingleInstance 可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大 ...
- CentOS 5 上使用yum同时安装32位和64位包的解决方法
在centos上使用yum在线安装软件包的时候,有时候会同时安装32位和64位的包.并且在update的时候也会更新双份. 其实让yum只安装64位的包,只要在 /etc/yum.conf 中加个 e ...
- js 小复习2
1.数组 findIndex() indexOf() // findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引.否则返回-1. function isBigEnough(ele ...
- 智课雅思词汇---二十四、名词性后缀ary(也是形容词后缀)
智课雅思词汇---二十四.名词性后缀ary(也是形容词后缀) 一.总结 一句话总结:很多词缀即是名词词缀也是形容词词缀,很多词即是名词也是形容词 1.名词性后缀-tude? 词根词缀:-tude [来 ...
- 装饰类——wpf
decorator:在元素“周围”设置外边框.背景或者二者. adorner:在已存在的Visual “之上”叠加Visual. AdornerDecorator:为可视化树中其下面的元素提供一个装 ...
- 7z压缩gopath的src的批处理
7zGoPath.bat @echo off pushd "%~dp0" :config for /f "delims=" %%t in ('powershel ...
- 四十二 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mget和bulk批量操作
注意:前面讲到的各种操作都是一次http请求操作一条数据,如果想要操作多条数据就会产生多次请求,所以就有了mget和bulk批量操作,mget和bulk批量操作是一次请求可以操作多条数据 1.mget ...
- 有云Ceph课堂:使用CivetWeb快速搭建RGW
转自:https://www.ustack.com/blog/civetweb/ 优秀的开源项目正在改变传统IT,OpenStack名头最响,已经成为了IaaS的事实标准.Ceph同样颇有建树,通过其 ...
概要
回到顶端