使用 VBA 将数据插入 Word 文档时将变量存储为代码

问题描述 投票:0回答:1

我开发了 VBA 代码,可以打开 Microsoft Word 并将数据插入到 Word 文档中。这是可行的,如果我为每个先例手动编写代码,我可以做任何我需要做的事情。

我正在尝试自动化此代码,以便用户可以输入需要进入每个书签的字段。我创建了一个表,用于存储书签的名称和每个书签的公式。基本上,我试图让每个客户都能轻松地创建先例。

如何将变量存储为代码?

例如,我可以插入“在此处插入单词”这样的单词,但我无法存储“插入由”&客户&“此处所说的单词”之类的内容。
或者,我可能想对书签使用 DLookup 值。

BMCount = Oapp.ActiveDocument.Bookmarks.Count
Debug.Print BMCount

x = 0
Set dbase = CurrentDb
Set recset1 = dbase.OpenRecordset("SELECT * FROM [Precedents]")
Set recset2 = dbase.OpenRecordset("Select * from [Precedent Variables]")
 
With recset1
    .AddNew
    recset1![PrecedentName] = Precedent
    recset1![doctype] = "Court Documents"
    recset1![Extension] = Extension
    update
    Debug.Print recset1![PrecedentName]
    Debug.Print recset1![doctype] = Extension
    Debug.Print recset1![Extension]
PrecedentID = recset1![ID]

End With

Do Until x = BMCount
    x = x + 1
    BMark = Oapp.ActiveDocument.Range.Bookmarks(x)
    Debug.Print BMark

    With recset2
        .AddNew
        recset2![Bookmark] = BMark
        recset2![PrecedentID] = PrecedentID
        strvar = InputBox("Please input the formula or data for the bookmark - " & BMark)
        recset2![VariableFormula] = strvar
        Debug.Print strvar
        update
    End With

    Debug.Print BMark
    Debug.Print strvar

    With Oapp.ActiveDocument.Bookmarks
        .Item(BMark).Range.Text = strvar
    End With
Loop

进一步解释:
我正在尝试将文本插入到 Word 中的书签中。我希望用户决定将哪个变量(或其他代码)分配给每个不同的书签。

如果书签是“customer”,他们可以调用一个名为 customer 的变量(已定义),如果书签显示“todaysdate”,则用户可以输入 Date() 并且当前日期应放入书签中,而不是“Date( )”。
在 Excel 中,我使用前面带有“=”的字符串。

vba ms-access ms-word
1个回答
1
投票

您可以动态添加项目到vb项目 也许这可以帮助

Private Sub Document_Open()

    StringExecute ("MsgBox ""hello""")
        
End Sub
Sub StringExecute(s As String)
    Dim vbComp As Object
    Set vbComp = ThisDocument.VBProject.VBComponents.Add(1)
    vbComp.CodeModule.AddFromString "Sub foo()" & vbCrLf & s & vbCrLf & "End Sub"
    Application.Run vbComp.Name & ".foo"
    ThisWorkbook.VBProject.VBComponents.Remove vbComp
End Sub

我从以下位置获得此内容(并将本工作簿编辑到本文档):如何在 VBA 中将字符串作为命令运行

当您收到信任错误时,请参阅:对 Visual Basic 项目的编程访问不受信任

© www.soinside.com 2019 - 2024. All rights reserved.