本人希望在ole中,连续显示指定的四个word文档的内容,设计了如下程序,但是结果只能连续复制第一个文档的内容,百思不得其解,希望有高手可以帮忙解决Dim WithEvents AppWord As Word.Application
Dim Cnt As Integer
Dim Fle As String
Dim flag As String
Private Sub WordOpen(ByVal FWordPath As String)
     Set AppWord = New Word.Application
    AppWord.Visible = True     
    AppWord.Documents.Open (FWordPath)
End SubPrivate Sub Form_Load()
Cnt = 1
flag = 0
Do While Cnt < 4
    Fle = "D:\wyd\word操作\eg2\" & Cnt & ".doc"
    WordOpen Fle    
    ActiveDocument.Content.Select
     Selection.Copy  
Form2.Show OLE1.DoVerb -1 '这是进入编辑状态
            
Set MyRange = ActiveDocument.Range _
  (Start:=ActiveDocument.Content.End - 1, _
   End:=ActiveDocument.Content.End - 1) 
 MyRange.Paste
  Cnt = Cnt + 1
    AppWord.Quit
    Set AppWord = Nothing
   
Loop
End Sub

解决方案 »

  1.   

    补充一点,这段程序是在form一运行就可以实现的,如果用按钮一步一步操作时没有问题的
      

  2.   

    主要存在的问题是,运行到MyRange.Paste时,它就网ole内部操作了,执行不了下面的程序,让其手动执行,则使下一个word执行不了    ActiveDocument.Content.Select语句,即使手动复制一段内容,最后显示在ole里面的总是,1.doc的内容,不知道是什么原因
      

  3.   

    Private Sub Form_Load()
    Cnt = 1
    flag = 0
    Do While Cnt < 4
        Fle = "D:\wyd\word操作\eg2\" & Cnt & ".doc"
        WordOpen Fle    
        AppWord.ActiveDocument.Content.Select           '这里
         AppWord.Selection.Copy                         '这里
    Form2.Show OLE1.DoVerb -1 '这是进入编辑状态
                
    Set MyRange = AppWord.ActiveDocument.Range _
      (Start:=AppWord.ActiveDocument.Content.End - 1, _
       End:=AppWord.ActiveDocument.Content.End - 1)        '这里
     MyRange.Paste
      Cnt = Cnt + 1
        AppWord.Quit                      '???代码可以重新设计一下,不用每次Quit
        Set AppWord = Nothing
       
    Loop
    End Sub
      

  4.   

    Do While Cnt < 4
        Fle = "D:\wyd\word操作\eg2\" & Cnt & ".doc"
        set a(Cnt) = WordOpen Fle        '这里
        a(Cnt).Activate                  '这里
        AppWord.ActiveDocument.Content.Select           
         AppWord.Selection.Copy                         
    Form2.Show
      

  5.   

    楼上的老兄,你的语句
        set a(Cnt) = WordOpen Fle        '这里
        a(Cnt).Activate                  '这里
    好像有语法错误的