【问题标题】:Type mismatch using byref使用 byref 类型不匹配
【发布时间】:2015-01-22 18:42:50
【问题描述】:

以下代码会创建一个编译时错误消息“类型不匹配”:

Private Sub Example  
    JustAdd(Sheet1.ListObjects("Table6"))
End Sub

Public Sub JustAdd(ByRef tableN As ListObject)  
   tableN.ListRows.Add
End Sub

也试过了:

Private Sub Example  
    Dim tmp As ListObject
    Set tmp = Sheet1.ListObjects("Table6")
    JustAdd(tmp)
End Sub

Public Sub JustAdd(ByRef tableN As ListObject)  
   tableN.ListRows.Add
End Sub

还有:

Private Sub Example  
    Dim tmp As ListObject
    tmp = Sheet1.ListObjects("Table6")
    JustAdd(tmp)
End Sub

Public Sub JustAdd(ByRef tableN As ListObject)  
   tableN.ListRows.Add
End Sub

只需朝正确的方向快速推动即可使此 JustAdd 子例程正常工作

【问题讨论】:

标签: vba excel byref listobject


【解决方案1】:

我只尝试了您的第一个示例,但我相信它们中的任何一个都应该适用于这种轻微的修改。

Call JustAdd(Sheet1.ListObjects("Table6"))

编辑¹:好的,也许不是第三个。

EDIT²:更多信息请访问:Calling Sub and Function Procedures(适用于:Office 2013 | VBA)

【讨论】:

  • 您不认为告诉 OP 去掉括号而不是使用旧版 Excel 宏中的过时关键字会更好吗? (甚至不是 VBA .....)也许对正在发生的事情以及为什么这样做有效的一些解释?
  • @RubberDuck - 好建议。我已经添加了一个链接,指向一些当前有关该主题的 MSDN 文档。
猜你喜欢
  • 2015-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-03
  • 2017-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多