我在word文档中有很多表,每个表都链接到书签。 然后我有每个跟踪更改(修订版)的扫描文档的功能。 我怎样才能找到跟踪变更的位置?在哪个表?
以下是我的一些代码:
Dim ThisWord As Document, TabHead As Table
Set ThisWord = ActiveDocument
Set TabHead = ThisWord.Bookmarks("Head").Range.Tables(1) '"Head" is bookmark for my first table
For Each oRevision In ThisWord.Revisions 'Run through each revision - tracked change
Select Case oRevision.Type
Case wdRevisionInsert
strText = oRevision.Range.Text
If oRevision.Range.Information(wdWithInTable) = True Then 'Check if tracked change is within table
Select Case oRevision.Range.Table ' <-- How can I change this part???
Case TabHead
'do some stuff with strText
'Case AnotherTable1
'Case AnotherTable2
'...
end select
end if
end select
next oRevision
我的主要目标是追踪word文档中的所有更改,获取该更改的日期和时间以及用户。我需要知道改变的地方。跟踪更改功能可以为我提供所有详细信息,但如何确定更改的位置?
答案 0 :(得分:0)
通过Range
对象,您可以访问修订版中的所有不同对象。如果要引用第一个Table
对象,请使用:
oRevision.Range.Tables(1)
在使用引用之前,您显然需要检查是表(例如If oRevision.Range.Tables.Count > 0 Then ...
)。
您也可以通过相同的方式访问书签集合:
If oRevision.Range.Bookmarks.Count > 0 Then
Debug.Print oRevision.Range.Bookmarks(1).Name
End If
答案 1 :(得分:0)
这将为您提供选择的表格编号。
Sub Demo()
Dim iTable&
With Selection
If Not .Information(wdWithInTable) Then
MsgBox "The selection is not in a table!"
Exit Sub
End If
For iTable = 1 To ActiveDocument.Tables.Count
If (.Range.Start >= ActiveDocument.Tables(iTable).Range.Start) And _
(.Range.End <= ActiveDocument.Tables(iTable).Range.End) Then
Exit For
End If
Next iTable
End With
MsgBox "It's in table # " & iTable
End Sub
来自macropod https://groups.google.com/forum/#!searchin/microsoft.public.word.programming/%22table%22 $ 20which / microsoft.public.word.programming / Gid7abgeAek / c5rUWhFmWwgJ