Vba 调用UpdateBookmark&useAforB作为布尔代码辅助

Vba 调用UpdateBookmark&useAforB作为布尔代码辅助,vba,call,ms-word,userform,autofill,Vba,Call,Ms Word,Userform,Autofill,我已经在这个网站上的人的帮助下把一些代码放在一起了。我遇到了一个小麻烦-我使用callupdatebookmark函数替换以前输入到word文档中的信息,我在现有代码中实现这一点时遇到了问题 Private Sub cmdOk_Click() Dim useAforB As Boolean useAforB = CheckBox1.Value Application.ScreenUpdating = False With ActiveDocument

我已经在这个网站上的人的帮助下把一些代码放在一起了。我遇到了一个小麻烦-我使用callupdatebookmark函数替换以前输入到word文档中的信息,我在现有代码中实现这一点时遇到了问题

Private Sub cmdOk_Click()
    Dim useAforB As Boolean
    useAforB = CheckBox1.Value

    Application.ScreenUpdating = False
    With ActiveDocument
        Call UpdateBookmark("Lodge", ComboBoxLodge.Value)
        Call UpdateBookmark("Form", tbForm.Value)
        Call UpdateBookmark("Form2", tbForm.Value)
        Call UpdateBookmark("AGN", tbGN.Value)
        Call UpdateBookmark("AFN", tbFN.Value)
        Call UpdateBookmark("LGN", useAforB, _
                                     tbGN.Value, TBLPGN.Value)
        Call UpdateBookmark("RGN", useAforB, _
                                     tbGN.Value, TBLPGN.Value)
        Call UpdateBookmark("LFN", useAforB, _
                                     tbFN.Value, TBLPFN.Value)
        Call UpdateBookmark("RFN", useAforB, _
                                     tbFN.Value, TBLPFN.Value)
        Call UpdateBookmark("DOB", tbDOB.Value)
        Call UpdateBookmark("LT", cbLT.Value)
        Call UpdateBookmark("PN", tbPN.Value)
        Call UpdateBookmark("PN2", tbPN.Value)
        Call UpdateBookmark("PN3", tbPN.Value)
        Call UpdateBookmark("PN4", tbPN.Value)
        Call UpdateBookmark("Issued", tbissue.Value)
        Call UpdateBookmark("Expiry", tbexpiry.Value)
        Call UpdateBookmark("LTD", tbLTD.Value)
        Call UpdateBookmark("LTD2", tbLTD.Value)
        Call UpdateBookmark("Narrative", tbNarrative.Value)
        Call UpdateBookmark("PRR", tbPRR.Value)
        Call UpdateBookmark("Recommendation", cbRecommendation.Value)
    End With
    Application.ScreenUpdating = True
    Unload Me
End Sub


Sub UpdateBookmark(BookmarkToUpdate As String, TextAtBookmark As String)
   Dim BookmarkRange As Range
   Set BookmarkRange = ActiveDocument.Bookmarks(BookmarkToUpdate).Range
   BookmarkRange.Text = TextAtBookmark
   ActiveDocument.Bookmarks.Add BookmarkToUpdate, BookmarkRange

End Sub
我得到了一个错误,读编译错误:ByRef参数类型不匹配每当我试图运行代码-有人能给我一些帮助吗??谢谢各位

为了清晰起见,添加了完整的代码

您的Sub-UpdateBookmark需要两个字符串类型的参数,但在某些情况下,您需要传递四个参数:不清楚其目的是什么

你是说什么

Call UpdateBookmark("LGN", IIf(useAforB, tbGN.Value, TBLPGN.Value))

UpdateBookmark需要两个字符串类型的参数,但在某些情况下,您需要传递四个参数:不清楚其目的是什么。你的意思是像Call UpdateBookmarkLGN,IIfuseAforB,tbGN.Value,TBLPGN.Value这样的东西吗?嘿@TimWilliams,尝试了你的代码,已经完全修复了它-你是一个传奇人物,想把它作为一个答案,这样我就可以选择你的答案了?很好,这就是我需要的,非常感谢你的帮助:
Call UpdateBookmark("LGN", IIf(useAforB, tbGN.Value, TBLPGN.Value))