Vba 使用byref时类型不匹配

Vba 使用byref时类型不匹配,vba,excel,byref,listobject,Vba,Excel,Byref,Listobject,以下代码创建编译时错误消息“类型不匹配”: 还尝试: 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
    Set tmp = Sheet1.ListObjects("Table6")
    JustAdd(tmp)
End Sub

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


只需要在正确的方向上快速移动,就可以让这个JustAdd子例程正常工作

我只尝试了你的第一个示例,但我相信它们中的任何一个都可以在稍加修改后工作

Call JustAdd(Sheet1.ListObjects("Table6"))
编辑ª:好的,可能不是第三个


EDIT²:更多信息请访问:(适用于:Office 2013 | VBA)

您不认为最好让OP去掉括号,而不是使用旧版本Excel宏中过时的关键字吗?(甚至不是VBA…)也许可以解释一下发生了什么以及为什么这样做有效?@RubberDuck-好建议。我已经添加了一个链接,指向有关此主题的一些当前MSDN文档。可能的副本值得一读:
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
Call JustAdd(Sheet1.ListObjects("Table6"))