VBA 变量声明可以在两行上进行,但不能用逗号分隔。编译器错误?

标签 vba excel

我在一个运行良好的过程中有以下变量声明。

Dim table_rng As Range
Dim attachments_rng As Range

我确实有它:

Dim table_rng, attachments_rng As Range

但这导致了“编译错误:ByRef 参数类型不匹配”。

由于我有工作代码,所以我没有陷入危机,但我浪费了一个小时来寻找这个解决方案。

我将 Excel 2010 与 Visual Basic for Applications 7.0.1628 结合使用

据我所知,第二个声明在语法上是正确的。我错过了什么吗?我在网络和 stackoverflow.com 上徒劳地搜索了有关该主题的任何智慧。

提前致谢。

最佳答案

所以,请看一下 VBA 编辑器的相关内容。第一条语句似乎声明了 3 个整数,但事实并非如此。变量ij是变量,只有k是整数。

因此,如果您查看代码,table_rng 被声明为变体/空,也许这就是导致问题的原因,但如果没有代码的其余部分,我无法告诉您更多信息。

但我建议您在线使用单个变量声明,它更容易阅读。或者,如果您想在单行上声明更多变量,则需要为每个变量指定日期类型(如我示例中的最后一行。如果您想了解变量类型,请在 VBA 和 View/Locals 窗口中使用调试)。

Sub testVarDeclar()

    Dim i, j, k As Integer

    Dim a As Integer, b As Integer

    Dim table_rng, attachments_rng As Range

    Dim table_rng2 As Range, attachments_rng2 As Range
End Sub

关于VBA 变量声明可以在两行上进行,但不能用逗号分隔。编译器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34035991/

相关文章:

Excel VBA : Named range + string value as validation list?

excel - 将 VBA 与非事件工作表的 "selection"一起使用

node.js - 以编程方式在 Sharepoint 中编辑 Excel 文件

java - 为 ods 文件中的列设置边框和最佳宽度

excel - 将单元格从一般格式设置为文本

python - 使用python导出大型数据集(从json到dataframe再到excel)

c# - Solidworks C# 插件 - 将字符串发送到宏

vba - 使用复选框选中的值进行计算

javascript - VBA拦截Internet Explorer链接点击

excel - 如何将excel范围作为图片添加到outlook邮件正文