想将表格的标题、说明等写入正在运行的Excel表中,第一次调用VB程序能正确使用,但第二次、第三次就不行了,提示“执行错误:对象变量With块变量未设置”,感觉好象是Excel资源未释放完全。但如果是将整个VB应用程序退出,重新进来它又正确了,但不退出要想多次写入另外的表中时就出现上述问题。VB程序如下:不知哪位大侠能够解决这问题
程序如下:
Dim xlApp As Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    On Error GoTo ErrorHandle:
    Set xlApp = GetObject(, "Excel.Application")        '获取当前运行的Excel
    Set xlSheet = xlApp.Application.ActiveWorkbook.ActiveSheet    '获取当前正在运行的活动工作表
    'Set xlSheet = xlApp.Application.ActiveSheet
    Rows("1:1").Select
    Selection.Insert Shift:=xlDown
    Range("A1:M1").Select    
    Selection.Merge
    Range("A1:M1").Select
    ActiveCell.FormulaR1C1 = “XXXXX工资汇总表” ‘要写入的标题
‘还有要写入的内容省略
Finally_Exit:
    xlApp.Quit
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
    Exit Sub
ErrorHandle:
    MsgBox "执行错误: " & Err.Description
    Resume Finally_Exit

解决方案 »

  1.   

            Dim xlApp     As Application
            Dim xlBook     As Excel.Workbook
            Dim xlSheet     As Excel.Worksheet
            On Error GoTo ErrorHandle:
            Set xlApp = GetObject("", "Excel.Application")        '获取当前运行的Excel,如果没有则新建一个
            xlApp.Visible = True
            Set xlBook = xlApp.Workbooks.Add
            Set xlSheet = xlBook.ActiveSheet               '获取当前正在运行的活动工作表
            'Set   xlSheet   =   xlApp.Application.ActiveSheet
            Rows("1:1").Select
            Selection.Insert Shift:=xlDown
            Range("A1:M1").Select
            Selection.Merge
            Range("A1:M1").Select
            ActiveCell.FormulaR1C1 = "XXXXX工资汇总表"     '要写入的标题
            '还有要写入的内容省略
    Finally_Exit:
            xlApp.Quit
            Set xlSheet = Nothing
            Set xlBook = Nothing
            Set xlApp = Nothing
            Exit Sub
    ErrorHandle:
            MsgBox "执行错误:   " & Err.Description
            Resume Finally_Exit
      

  2.   

    请参见顶级高手写的Excel操作类       
    http://blog.csdn.net/modest/MyArticles.aspx