我定义了一个全局的xlapp (excel.application) ,
然后再程序里面判断是否已经创建了这个xlapp,如下:
 On Error Resume Next
  Set xlApp = GetObject(, "Excel.Application")
  If Err.Number <> 0 Then '没有
      gblnExcelNotRunning = True
      Set xlApp = CreateObject("Excel.Application")  
    Else
      gblnExcelNotRunning = False
   End If
  Err.Clear
然后用private变量 xlworkboot =xlapp.sheets.open("text.xls")
xlworksheet=xlworkbook.sheets("sheet1")
xlworksheet.activate
来打开模版并填数据,最后
xlapp.visible=true
然后
Set xlWorksheet = Nothing
Set xlWorkbook = Nothing
excel想做到由用户自己更改或者打印然后关闭,但是我这段程序,也就是一个按钮的事件,如果连续执行两次,第二次excel仅仅会显示框架,但是不能显示sheet里面的内容,为什么???

解决方案 »

  1.   

    xlapp.quit
    set xlworksheet=nothing
    set xlxlapp=nothing
      

  2.   

    如果用了xlapp.quit的话,excel文档就会直接关闭~ 有没有可以显示但又不是打印预览的模式的可行方式?
      

  3.   


    Dim xlteachder As New Excel.Application
    Dim xlBook As New Workbook
    Dim xlSheet As New Worksheet
    Set xlteachder = CreateObject("excel.application")
    xlteachder.Visible = False/是否可见
    xlteachder.Caption = "xx"
    Set xlBook = xlteachder.Workbooks.Open(地址)
    Set xlSheet = xlBook.Worksheets(1)
    赋值语句
    'xlBook.PrintOut
    'xlbook.PrintPreview 
    xlBook.Save 保存 如果不可见一定保存,否则进程无法关闭
    xlteachder.Quit 退出
    xlteachder.Workbooks.Close 关闭进程