使用Word.Application 排版自动形成几个2000来页的word文档,运行好慢,要两个多小时都出不来.
谁有办法救救我?

解决方案 »

  1.   

    谢谢!例如:
    Private Sub Command1_Click()
     Dim file1  As Word.Application
     Set file1 = New Word.Application
     file1.Visible = True
     write_file file1
     file1.WindowState = wdWindowStateMaximize
     Set file1 = Nothing
    End SubSub write_file(wd As Object)
     Dim Dc As Document
     Dim wRang As Range Set Dc = wd.Documents.Add
     mm = 0
     kk = 0
     For mm = 0 To 2000
      Set wRang = Dc.Paragraphs(kk + 1).Range
      wRang.InsertParagraphAfter
      wRang.ParagraphFormat.Alignment = wdAlignParagraphCenter
      wRang.Bold = True
      wRang.Font.Size = "32"
      wRang.Font.Name = "宋体"
      wRang.InsertAfter "办公室"
      wRang.InsertParagraphAfter
      Set wRang = Dc.Paragraphs(kk + 3).Range
      wRang.ParagraphFormat.Alignment = wdAlignParagraphCenter
      wRang.Bold = True
      wRang.Font.Size = "32"
      wRang.Font.Name = "宋体"
      wRang.InsertAfter "计划用水通知"
      wRang.InsertParagraphAfter
      Set wRang = Dc.Paragraphs(kk + 4).Range
      wRang.Bold = 0
      wRang.Font.Size = "16"
      wRang.InsertAfter "序号:2002-" & Format(mm + 1, "0000")
      wRang.InsertParagraphAfter
      wRang.InsertParagraphAfter
      Set wRang = Dc.Paragraphs(kk + 6).Range
      wRang.Bold = 0
      wRang.Font.Size = "16"
      wRang.ParagraphFormat.Alignment = wdAlignParagraphLeft
      wRang.InsertAfter Space(4) & "单位:" & CStr(mm)
      wRang.InsertParagraphAfter
      Set wRang = Dc.Paragraphs(kk + 7).Range
      wRang.Bold = 0
      wRang.InsertAfter Space(4) & "地址:" & CStr(mm)
      wRang.InsertParagraphAfter
      Set wRang = Dc.Paragraphs(kk + 8).Range
      wRang.ParagraphFormat.Alignment = wdAlignParagraphLeft
      wRang.InsertAfter Space(4) & "为了进一步改善我市的地下水源状况,落实海府[1998]6号文要求," _
      & "贵单位2002年度自备井计划用水经我办核定后为" & CStr(mm) & "立方米。该计划从1月1  日起执行," _
      & "按年考核。"
      wRang.InsertParagraphAfter
      wRang.InsertParagraphAfter
      wRang.InsertParagraphAfter
      wRang.InsertParagraphAfter
      wRang.InsertParagraphAfter
      wRang.InsertParagraphAfter
      wRang.InsertParagraphAfter
      wRang.InsertParagraphAfter
      Set wRang = Dc.Paragraphs(kk + 14).Range
      wRang.InsertAfter "                          2002年1月1日 "
      wRang.InsertParagraphAfter
      wRang.InsertParagraphAfter
      wRang.InsertParagraphAfter
      kk = kk + 18
      mm = mm + 1   
     Next mm
     Dc.SaveAs "tz"
     Dc.Close
    End Sub
    好慢! 注意"引用"中加入"microsoft word X.0 object library"
      

  2.   

    不要把WORD显示出来了这样会快很多
      

  3.   

    这个问题 用VBA +欲功能就可以了
      

  4.   

    :)   试试调一下字体,或者不设置字体属性.
    不行的话,最好worldapp里边不要自定义控件.
      

  5.   

    to cpio(就这么简单) 和 chchw2001(小鱼儿) :
    如何实现