博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vba传递参数类型错误
阅读量:6315 次
发布时间:2019-06-22

本文共 1715 字,大约阅读时间需要 5 分钟。

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

<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.

出处:

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

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

'简单的测试程序

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://hkkaa.baihongyu.com/

你可能感兴趣的文章
Linux的任务调度
查看>>
在Android studio中添加jar包方法如下
查看>>
iframe 在ie下面总是弹出新窗口解决方法
查看>>
分享10款漂亮实用的CSS3按钮
查看>>
安装nginx 常见错误及 解决方法
查看>>
在之前链表的基础上改良的链表
查看>>
android编译系统makefile(Android.mk)写法
查看>>
MD5源代码C++
查看>>
Eclipse 添加 Ibator
查看>>
Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
查看>>
Python编程语言
查看>>
十四、转到 linux
查看>>
Got error 241 'Invalid schema
查看>>
ReferenceError: event is not defined
查看>>
男人要内在美,更要外在美
查看>>
为什么要跟别人比?
查看>>
app启动白屏
查看>>
Oracle 提高查询性能(基础)
查看>>
学习知识应该像织网一样去学习——“网状学习法”
查看>>
Hadoop集群完全分布式安装
查看>>