我需要写一个宏 ,这个宏的功能是,在Word中选中一段内容,然后运行该宏,使这段内容的左边和右边分别插入“&”这个符号,如果没有选中内容直接运行该宏,责在光标所在位置插入两个“&”

解决方案 »

  1.   

    If Selection.Start = Selection.End Then
        Selection.TypeText "&"
        Selection.TypeText "&"
    Else
        Dim tmpStart As Integer
        tmpStart = Selection.Start
        Selection.MoveRight
        Selection.TypeText "&"
        Selection.SetRange tmpStart, tmpStart
        Selection.TypeText "&"
    End If
      

  2.   

    很明显楼上的方法是错误的,因为你加入了字符之后,行的内容也变了。
    比如原先 XXXXXXXXXX
    你加入了&XXXXXXXX&之后,最有可能的是变为
    &XXXXXXX
    &X
    当然,由于你设置的行对齐方式不同,会有不同的效果。
    所以唯一正确的做法是在(wird 2003下)
    for i = selection.words.first.information wdadjustedpageNumber to selection.words.last.information wdadjustedpageNumber
    对每页的每一行做处理
    for j= ... to ...pages(i).lines.count
    set myline = ....pages(i).lines(j)
    myline.range.insertbefore("&")
    while (myline.range.characters.last <> ""&)
        myrange.insertafter("&")loopit's ok! 不过可能会有多余的&号!
    以上是大致程序,请自己修改
      

  3.   

    楼上显然想太多了。人家只要在选中内容前后各加一个&就行了,跟什么page, line没关系。最简单直接就是
    selection.insertbefore "&"
    selection.insertafter "&"