从excel VBA引用单词表?

时间:2017-05-01 19:57:12

标签: excel vba excel-vba word-vba

我正在尝试编写一个excel宏,它在word中打开一个rtf文档,并根据几个变量(pulldate和rmname)返回特定表的页码。以下代码在单词VBA中完美运行(使用" activedocument"代替" wdApp"当然)但是当我尝试从excel实现它时它会中断。

Sub find_pulls()
Dim wdApp As Object
Dim pullsheets As Object
Dim totalPullPages As Integer
Dim pg As Pages
Dim start As String
Dim finish As String
Dim rmname As String
Dim tnumber As Integer
Dim pSnumber As String
Dim pEnumber As String
Dim pulldate As String

Set wdApp = CreateObject("word.application")

Set pullsheets = wdApp.documents.Open _
("C:\Users\xxxxx\xxxxxxxx\xxxxx\pullsheets.rtf")
wdApp.visible = True


pulldate = "05/06/2017"
rmname = "503"

For Each cell In wdApp.ActiveDocument.Tables

    If InStr(cell, rmname) > 0 Then
cell.Select
    If Left(wdApp.Selection.Cells(5).Range.Text, 10) = pulldate Then
        tnumber = wdApp.ActiveDocument.Range(0, wdApp.Selection.Tables(1).Range.End).Tables.Count
        Debug.Print tnumber
        Set t = wdApp.ActiveDocument.Tables(tnumber)
        pSnumber = t.Range.Information(wdActiveEndPageNumber)
        Set t = wdApp.ActiveDocument.Tables(tnumber + 1)
        pEnumber = t.Range.Information(wdActiveEndPageNumber)
        Debug.Print "Pull is pg." & pSnumber & "-" & pEnumber
    End If
End If

Next cell

wdApp.Quit SaveChanges:=wdDoNotSaveChanges

End Sub

我得到"价值超出范围"在" pSnumber = ..."线。我假设这是因为excel中没有表对象,因为有单词 - 是否有任何解决方法来获取我正在寻找的值?

目标是搜索文档(它总是以两个表的形式进行格式化,一个包含标题信息,另一个紧跟在行项目之后),并返回找到的表的结束页码。然后,这些值将用于复制表数据或打印这些页面。 Pulldate和rmname最终将是基于用户输入的变量。没有选项直接在word中运行宏,因为.rtf文件是系统生成的,必须通过主Excel工作表访问。

有什么想法吗?

0 个答案:

没有答案