本帖最后由 laro77 于 2010-02-19 23:59:54 编辑

解决方案 »

  1.   

    可疑处有两个:
    1 把On Error GoTo continue注释掉之后没保存??
    2 “i_NumPara = i_NumPara + 7” 干嘛用的?? 会不会破坏你的循环用意??
      

  2.   

    先谢谢大家。to king06:
    设过断点,看了几遍都没什么变化,而且那一段的格式是“标题4”,去掉之前的段落重新运行,则能识别此段,不过到后面又会无故跳出循环。纳闷啊~to lb_bn:
    恩,我有把那些可能不同的属性都拖到监控里面然后一步步走,不过貌似每次循环都很理智,到了某一点后就不回头了,直接运行NEXT后面的内容,至于是哪一点跳出来,这还要取决于不同的文章。不过基本上是那篇文章都会跳出来一下。to Happylessness:
    1 把On Error GoTo continue注释掉之后保存了,而且没注掉的时候貌似这两句也没起过作用。。
    2 “i_NumPara = i_NumPara + 7” 干嘛用的?? 会不会破坏你的循环用意?? 这里我比较傻,不过我不会其他的办法,因为我是在select出来的段落(我们暂且称之为段p)之前加表格 ,那么自然i_NumPara 的内容 doc1.Paragraphs.Count都会变,我希望下一次的循环从(段p+1)段继续读,而不是把我已经加的表格也遍历一遍。
      

  3.   

    如大家所见,我用的找出所有标题的办法很傻很雅克蜥,用了这么多条件:   
    If str_Input.Style.NameLocal <> "正文" _
        And str_Input.Style.NameLocal <> "超链接" _
        And str_Input.Style.Type <> wdStyleTypeTable _ '此处把表格也跳过去,不过事实上有时也会在表格中加段再加内容,反反复复很烦人
        Then
                If str_Input.Style.ListLevelNumber <> 0 _  '好像正文的时候是0,不过还有一些古怪行为也被标为0了,我将它全部跳出。
                Or str_Input.Style.AutomaticallyUpdate = False _  '这是为了跳开目录的
                Then
    谁知道更好的办法把这个四不像的程序换换血?另,word VBA 的资料不多,心里着急有劲使不上哪位大虾有好资料的链接,介绍几个? (Access的也可以~~)
      

  4.   

    解决了,到头还是BOSS回来三下五除二了。
    VBA中的FOR循环,原来内存只记住了初始数据的次数,所以无论doc1.Paragraphs.Count怎么变,它都不鸟我,到次数自动退出了。
    于是解决方法就出来了,为循环多定义了一个变量,和大家分享一下:
    Dim Cur_Org_Para_No As Long
    NumPara = doc1.Paragraphs.Count
    i_NumPara = 1
    For Cur_Org_Para_No = 1 To NumPara
    ……
    i_NumPara = i_NumPara + 1
    Next
     
    其他都没变。
    :)
    大家好心情!