我开发了 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 中,我使用前面带有“=”的字符串。
您可以动态添加项目到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 项目的编程访问不受信任