你用VBA录一段在word中插入bookmark的宏,然后你就知道怎么在C#中写了。
嗯,我跟踪了一下宏,代码如下:
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 ???);
问号部分不知道该怎么写。。请指教~~
@阿拉米斯: 你可以用Selection.MoveUp,MoveLeft 等方法来定位你的光标,或者MoveEnd等方法来选中一个区域,Selection.Range会自动变为你的光标的位置。ref 后的参数填写 Selection.Range对象就行了,如下:Range r = Selection.Range;myWord.ActiveDocument.Bookmarks.Add("bookmark1", ref r);
@荒原上的军旗:嗯,可是我写为 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;
这个是怎么回事呢,请指点~~
@阿拉米斯: 应该这样写:
Microsoft.Office.Interop.Word.Range r = myWord.Selection.Range;
@荒原上的军旗: 解决了,谢谢高手,以后这方面的问题还请多多指教,哈哈~
你好,我现在也在需要这方面的知识,望你能赐教一番,不胜感谢