此时插入后自动移动MS Word书签

时间:2017-03-29 21:18:46

标签: vba excel-vba excel

我试图在这里找到一个解决方案:Automatically move MS Word bookmark after an insertion at this point,经过几个小时的挫折,我看不出我错过了什么。

我正在尝试实现一个问题的解决方案,我需要为MS Word生成一系列表格。每个表的结构相同。内容取自Excel中的数据并复制到表中。然后我想将表复制到Word中,将段落添加到单独的表中,返回到Excel并使用新数据填充相同的范围并重复该过程,直到创建了所有表。这就是背景。

我在这里复制的代码只是尝试将表格添加到目前带有书签(ExcelTable)的空白文件中,这样我就可以计算出粘贴表格并自动移动书签的过程。

我得到了#34;类型不匹配"在线上,     "设置tmpRng = MyDoc.Bookmarks(" ExcelTable")。范​​围"尽管已经宣布tmpRng为Range,原始回复显示了。

我错过了什么?

Sub copy_SRA_tables() 
'declare all variables
    Dim WSheet          As Worksheet
    Dim Tbl1            As ListObject
    Dim IsActive        As Boolean
    Dim WordApp         As Word.Application
    Dim MyDoc           As Word.Document
    Dim AdminEntity     As String
    Dim strSaveName     As String
    Dim fdFileDialog    As FileDialog
    Dim tmpRng          As Range

'Activate the Word Document
    On Error Resume Next
    Set WordApp = GetObject(class:="Word.Application")
    Err.Clear
    If WordApp Is Nothing Then
        Set WordApp = CreateObject(class:="Word.Application")
    End If
    On Error GoTo 0
    WordApp.Visible = True
    WordApp.Activate
    With WordApp.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = False
        .Show
        .Execute
        txtFilename = .SelectedItems(1)
    End With
    Set MyDoc = WordApp.Documents(txtFilename)

'Start the process:
ThisWorkbook.Sheets("SAR").Activate
ThisWorkbook.Sheets("SAR").Range("SAR_Details").Copy
WordApp.Visible = True
With MyDoc
    .Activate
    .Bookmarks("ExcelTable").Range.PasteExcelTable _
        LinkedToExcel:=False, _
        WordFormatting:=False, _
        RTF:=False
End With
    Set tmpRng = MyDoc.Bookmarks("ExcelTable").Range
    MyDoc.Bookmarks.Add "ExcelTable", ActiveDocument.Range(tmpRng.Start - 1, tmpRng.Start - 1)
End Sub

0 个答案:

没有答案