[英]Text after table in Word using VBA codes
我使用VBA代码创建Word文档,并将数据从Excel传输到在Word文档中创建的表中。
在表格后开始新行/段落时出现错误。
我的代码选择整个表,但不会在表后开始新文本,因此以后的内容将添加到表中的cell(1,1)。
我只是向您展示代码的结构,并且在代码的Selection.Collapse
行出现错误。
运行时错误438,对象不支持此属性或方法。
Sub Word_Report()
Dim objWord As Object
Dim objDoc As Object
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
With objWord.Selection
Set myTable = objDoc.Tables.Add(Range:=objWord.Selection.Range, NumRows:=7, NumColumns:=3)
myTable.Borders.Enable = True
''' my table contents'''
end with
'start new line after table
objDoc.Range.InsertAfter Chr(13) & "Hello"
.Font.Size = 11
.BoldRun
End sub
编辑
请尝试以下操作:
Sub Word_Report()
Dim objWord As Object
Dim objDoc As Object
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
With objWord.Selection
Set myTable = objDoc.Tables.Add(Range:=objWord.Selection.Range, NumRows:=7, NumColumns:=3)
myTable.Borders.Enable = True
''' my table contents'''
End With
'start new line after table
objDoc.Range.InsertAfter Chr(13) & "Hello"
End Sub
使用.Range
而不是Selection
要在表格后立即插入文本,您必须将范围设置为表格,然后将范围折叠 。 插入表格,将所有数据放入表格中,格式化表格。
获得所需的代码后,请使用如下代码,其中h1
是Word.Range
而objTemplate
是Word.Document
对象:
Set h1 = objTemplate.Tables(TableNum).Range
h1.Collapse Direction:=wdCollapseEnd
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.