首页 新闻 会员 周边 捐助

C#如何在创建word文档时给其插入书签(bookmark)呀

0
悬赏园豆:50 [已解决问题] 解决于 2011-12-19 15:57

最近公司要做一个word模板的功能,用代码来实现建立word文档时给它插入bookmark,以便程序能根据该模板来创建相应的word文档。

请高手指点~

阿拉米斯的主页 阿拉米斯 | 初学一级 | 园豆:92
提问于:2011-12-19 09:12
< >
分享
最佳答案
1

你用VBA录一段在word中插入bookmark的宏,然后你就知道怎么在C#中写了。

收获园豆:50
Launcher | 高人七级 |园豆:45050 | 2011-12-19 09:18

嗯,我跟踪了一下宏,代码如下:

With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="bookmark2"
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With

那个.Add Range:=Selection.Range, Name:="bookmark2"中的 Selection.Range是调用的哪个方法呢?

我代码如下:

Microsoft.Office.Interop.Word.ApplicationClass myWord = new Microsoft.Office.Interop.Word.ApplicationClass();

myWord.ActiveDocument.Bookmarks.Add("bookmark1", ref ???);

问号部分不知道该怎么写。。请指教~~

阿拉米斯 | 园豆:92 (初学一级) | 2011-12-19 11:55

@阿拉米斯: 你可以用Selection.MoveUp,MoveLeft 等方法来定位你的光标,或者MoveEnd等方法来选中一个区域,Selection.Range会自动变为你的光标的位置。ref 后的参数填写 Selection.Range对象就行了,如下:Range r = Selection.Range;myWord.ActiveDocument.Bookmarks.Add("bookmark1", ref r);

Launcher | 园豆:45050 (高人七级) | 2011-12-19 13:56

@荒原上的军旗:嗯,可是我写为 Microsoft.Office.Interop.Word.Range r = Microsoft.Office.Interop.Word.Selection.Range;时 提示“错误 22 非静态的字段、方法或属性“Microsoft.Office.Interop.Word.Selection.Range.get”要求对象引用”

具体代码如下:Microsoft.Office.Interop.Word.Range r = Microsoft.Office.Interop.Word.Selection.Range;
                object rng = (object)r;
                myWord.ActiveDocument.Bookmarks.Add("bookmark1", ref rng);
                myWord.ActiveDocument.Bookmarks.DefaultSorting = 0;
                myWord.ActiveDocument.Bookmarks.ShowHidden = false;

这个是怎么回事呢,请指点~~

阿拉米斯 | 园豆:92 (初学一级) | 2011-12-19 15:18

@阿拉米斯: 应该这样写:

Microsoft.Office.Interop.Word.Range r = myWord.Selection.Range;

Launcher | 园豆:45050 (高人七级) | 2011-12-19 15:37

@荒原上的军旗: 解决了,谢谢高手,以后这方面的问题还请多多指教,哈哈~

阿拉米斯 | 园豆:92 (初学一级) | 2011-12-19 15:56
其他回答(2)
0

用C# 在word中添加书签,注解等,推荐文章 http://blog.csdn.net/eiceblue/article/details/43668671 ,上面有详细代码

Jerk_du | 园豆:206 (菜鸟二级) | 2015-02-09 14:29
0

你好,我现在也在需要这方面的知识,望你能赐教一番,不胜感谢

学习难 | 园豆:204 (菜鸟二级) | 2017-03-13 10:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册