[英]Word automation find out if a bookmark is in a table
我正在使用Word Automation操作某些文檔(yuk!)。 我正在使用此命令來獲取文檔中的書簽。
Object oBookmark = "MyBookmarkName";
Range oRngoBookmark = wordDocument.Bookmarks.get_Item(ref oBookmark).Range;
我要查找的是該書簽是否在文檔的表中。 有沒有簡單的方法可以做到這一點?
我在.NET應用程序中從C#調用此代碼。
我不確定如何使用.net解決這個問題,但是下面的宏展示了這個想法。 對象模型趨於相同,因此我認為從VBA轉換為C#並不困難。
Sub BookmarksInTables()
Dim aTable As Table
Dim aBookmark As Bookmark
For Each aBookmark In ActiveDocument.Bookmarks
For Each aTable In ActiveDocument.Tables
'If start of book mark is inside the table range or
' the end of a book mark is inside the table range then YES!
If (aBookmark.Range.Start >= aTable.Range.Start _
And aBookmark.Range.Start <= aTable.Range.End) _
Or (aBookmark.Range.End >= aTable.Range.Start _
And aBookmark.Range.End <= aTable.Range.End) Then
MsgBox aBookmark.Name + " is inside a table"
Else
MsgBox aBookmark.Name + " is not inside a table"
End If
Next
Next
End Sub
它通過檢查書簽的開始或結束是否在每個表的范圍內(在整個文檔中)來工作。 如果書簽的任何部分在表格內,它將起作用。
或者,如果您需要查找書簽是否僅在表內,則需要檢查書簽的開始是否大於或等於表的開始以及書簽的結束是否小於或等於表的結束。 。
--Kris
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.