我正在使用Office 365.我的Access VBA代码正在创建Word文档。我可以在文档中的表上添加一个字段。但是当我尝试设置字段的名称或字段中的文本时,它就是轰炸。这是我的代码:
Dim WordApp As New Word.Application
Dim WordDoc As New Word.Document
Dim fField As Word.FormField
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
WordApp.Activate
Set WordDoc = WordApp.Documents.Add
WordDoc.Select
' Here I set up some header text, then I set WordRange to be at the end of the document
Set WordTable = WordDoc.Tables.Add(WordRange, 6, 4)
With WordDoc.Tables(1)
Set oRange = .Cell(1, 2).Range
Set fField = ActiveDocument.FormFields.Add(Range:=oRange, Type:=wdFieldFormTextInput)
'
' If I do it either of the two ways below, I get a 'Runtime error 91: Object Variable or With block variable not set'
'
fField.Range.Fields(1).Result.Text = "FirstName"
fField.Range.Text = "FirstName"
'
' The same error comes up when I try to
'
fField.Name = "FirstName"
End With
我在网站上看过这两种方法的例子,他们似乎都说这会有效。
请注意我已经砍掉了一堆填充表格的东西,但我认为它对我在这里做的事情没有任何影响。
它在任何一条线上爆炸:
fField.Range.Fields(1).Result.Text = "FirstName"
或
fField.Range.Text = "firstName"
(我一次只使用其中一个,我注释掉另一个)。这两个都会导致以下错误。
运行时错误91:对象变量或未设置块变量。
在等待响应时,我将所有代码复制到临时例程中,我摆脱了所有无关紧要的东西。我发现当我尝试将字段放入表格时,它会发生炸弹(在上面提到的行中),但是当我在表格外创建字段时,它可以设置字段的文本和名称没有问题!任何想法如何让我在一个表内工作???
答案 0 :(得分:0)
我需要先解决Cell:
.Cell(1, 2).Range.FormFields(1).Result = "Joseph"
和
.Cell(1, 2).Range.FormFields(1).Name = "FirstName"
而不是
fField.Text
。