word中的文字型窗体域通常在vba中可以通过ActiveDocument.Fields来进行操作
但如果遇到表格,并且处于受保护的状态,要填充,还是用这个命令的话就比较麻烦了,如果不受保护还可以用替换的方式...
那么怎么解决呢?
我们可以考虑用ActiveDocument.Tables来实现填充
Sub 按钮1_Click() Set objword = GetObject(, "Word.Application") 'objword.Visible = False '设置为不可见,不然每次打开Word都太费时间了 For j = 1 To ActiveSheet.UsedRange.Rows.Count ' 填充 本账单日,您所购买的聚赢利率-挂钩中国10年期国债结构性存款192129号(code) objword.ActiveDocument.Fields(3).result.Text = "本账单日,您所购买的" & Cells(j + 1, 2) For i = 1 To 7 '从第一列开始遍历到最后第二个,最后一个是要保存的文件名称,可以不遍历 objword.ActiveDocument.Tables(1).Cell(2, i).Range.Text = Cells(j + 1, i).Value Next objword.ActiveDocument.SaveAs Cells(j, 8).Value, 17 Next End Sub