我在一个工作正常的过程中有以下变量声明.
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个整数,但没有.变量i
和j
变量,只是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