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进行程序开发时,有时需要信号槽来完成参数传递.带参数的信号槽在使用时,有几点需要注意的地 ...
随机推荐
- 【纯代码】Swift相册照片选择-支持单选或多选
// // NAPublishAlbumTableViewController.swift //// // Created by on 2019/3/23. // Copyright © 2019年 ...
- Spring boot + jdbc学习笔记
pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www. ...
- OpenVpn部署使用easy-rsa-3.0
OpenVpn简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network加密通道的免费开源软件.使用OpenVPN可以方便地在家庭.办公场所.住宿酒店等不同网络访问 ...
- Spring Boot 中使用jsp
接SpringBoot 快速入门(Eclipse): 步骤一:视图支持 Springboot的默认视图支持是Thymeleaf,但是Thymeleaf我们不熟悉,我们熟悉的还是jsp. 所以下面是讲解 ...
- java基础(3)--8种基本类型
八种基本类型 数据类型分为两大类:基本类型,引用类型 基本类型有8种,除了基本类型(8种)以外任何类型都是引用类型.如: String 是引用类型 基本类型有8种(首字母是小写): 整数:byte, ...
- Python 模块引入,脚本执行
引入模块 创建一个fibo.py def fib(n): # write Fibonacci series up to n a, b = 0, 1 while b < n: print b a, ...
- NumPy数组创建例程
NumPy - 数组创建例程 新的ndarray对象可以通过任何下列数组创建例程或使用低级ndarray构造函数构造. numpy.empty 它创建指定形状和dtype的未初始化数组. 它使用以下构 ...
- JNIjw01
1.VC6(CPP)的DLL代码: #include<stdio.h> #include "jniZ_JNIjw01.h" JNIEXPORT void JNICALL ...
- Springboot- Spring缓存抽象学习笔记
Spring缓存作用准备: 1.准备数据(准备一个有数据的库和表/导入数据库文件,准备好表和表里面的数据) 2.创建javaBean封装数据 3.整合MyBatis操作数据库( 这里用MyBatis) ...
- tensorflow笔记:使用tf来实现word2vec
(一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代码分析 (四) tensorflow笔 ...
概要
回到顶端