使用vba代码的单词表后面的文本

时间:2017-11-15 21:57:39

标签: excel vba excel-vba

我正在使用vba代码创建word文档,我正在将一些数据从excel传输到我创建的单词中的表。我创建一个表没有问题,但我在表后面开始一个新行/段时出错。

现在我的代码会选择整个表格,但是不能在表格之后开始新的文本,所以后来的内容被添加到我创建的表格中的单元格(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

enter image description here

2 个答案:

答案 0 :(得分:1)

  

被修改

尝试以下方法:

   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

答案 1 :(得分:0)

要在表格后立即插入文本,您必须设置表格范围,然后折叠范围。插入表格,将所有数据放入表格中,格式化表格。

获得所需的代码后,请使用如下代码,其中h1Word.Range,而objTemplateWord.Document对象:

Set h1 = objTemplate.Tables(TableNum).Range

h1.Collapse Direction:=wdCollapseEnd