簡體   English   中英

Word自動找出書簽是否在表格中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM