首页 > 解决方案 > VBA 对象参数不匹配类型

问题描述

我在 VBA 中创建了一个使用子例程到另一个子例程的代码。具体来说,我传递了两个方法返回的参数:Documents.Add 和 Selection。不幸的是,我收到了一个不匹配的错误 beetween 论点。这是代码:

Sub crea_tabella(data As String, argomento As String, i As Integer, objDoc As Object, objSelection As Object)
    objSelection.TypeText "Table 1"
    objSelection.TypeParagraph
    Set objRange = objSelection.Range
    objDoc.Tables.Add objRange, 5, 5
    Set objTable = objDoc.Tables(i)
    objTable.Borders.Enable = True
    
    objTable.Cell(1, 1).Range.Text = data
    objTable.Cell(3, 1).Range.Text = argomento
    
    selezione.EndKey 6
    selezione.TypeParagraph
End Sub
Sub crea_tabelle_multiple()
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    Set objDoc = objWord.Documents.Add
    Set objSelection = objWord.Selection
    Call crea_tabella("01/01/2021", "Primo argomento", 1, objDoc, objSelection)
End Sub

请……有人帮我……

标签: vbaobjecttypesargumentsmismatch

解决方案


我得到了 objDoc 和 objSelection 的类型名称,并将它们放入代码中:

Sub crea_tabella(data As String, argomento As String, i As Integer, objDoc As Document, objSelection As Selection)
    objSelection.TypeText "Table 1"
    objSelection.TypeParagraph
    Set objRange = objSelection.Range
    objDoc.Tables.Add objRange, 5, 5
    Set objTable = objDoc.Tables(i)
    objTable.Borders.Enable = True
    
    objTable.Cell(1, 1).Range.Text = data
    objTable.Cell(3, 1).Range.Text = argomento
    
    selezione.EndKey 6
    selezione.TypeParagraph
End Sub
Sub crea_tabelle_multiple()
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    Set objDoc = objWord.Documents.Add
    Set objSelection = objWord.Selection
    'MsgBox TypeName(objDoc)
    'MsgBox TypeName(objSelection)
    Call crea_tabella("01/01/2021", "Primo argomento", 1, objDoc, objSelection)
End Sub

不幸的是,错误仍然存​​在


推荐阅读