1

I need to delete a few pages in a word document dynamically, the page numbers will be fetched from a configuration file. How can i delete a particular page.

4

3 回答 3

2

这是您需要的 VBA 宏。您可以轻松地将其翻译成 C#

Selection.HomeKey wdStory
Selection.GoTo What:=wdGoToPage, Count:=3
Selection.Bookmarks("\Page").Select
Selection.Delete

上面代码中的3就是我要删除的页码。您可以使用 for 循环并开始按降序删除页面(如果您使用升序,页码确实会发生变化,您最终会删除除打算删除的内容之外的内容)。

希望这可以帮助。

于 2013-07-29T06:21:46.843 回答
0
Its deleting pages 1,4,7.where i want to delete pages 1,3,5.  
  int num = objWordDoc.ComputeStatistics(stat, ref missing);
                int[] a = { 1,3,5};
                for (int i = 0; i < a.Length; i++)
                {
                    object page_num = a[i];                    
                    objWordDoc.Application.Selection.GoTo(Word.WdGoToItem.wdGoToPage, Word.WdGoToDirection.wdGoToAbsolute, num, page_num);
                    objWordDoc.Application.Selection.Bookmarks[@"\Page"].Select();                                        
                    objWordDoc.Application.Selection.Delete();         

                     }
于 2013-07-30T03:53:28.140 回答
0

它删除第 1、4、7 页。我想删除第 1、3、5 页。

这很简单:当您删除第 1 页时,您的第 3 页将变为第 2 页,如果您仍然删除第 3 页,那么您实际上删除了以前的第 4 页,依此类推

只需在您的代码中反转数组,您就可以了 {5,3,1}

于 2014-11-14T09:13:40.113 回答