[VBA]在后台删除工作表后出现的怪问题

类别:.NET开发 点击:0 评论:0 推荐:

昨晚写一代码,将备将某目录下EXCEL中的某一工作表(同名“sheet2”)批量删除代码如下,成功删除之后发现奇怪问题,被删除处理过的EXCEL文件打开后发现是什么都没有,一张工作表都没有,但用    VB编辑器查看,却发现工作表还在,但就是没办法显示。

Private Sub CommandButton1_Click()
Dim app As Excel.Application
Dim xlapp As Variant
Dim xlworkbooks As Workbooks
Dim MyFile, MyPath, MyName
MyPath = "d:\temp"
MyName = Dir(MyPath & "\" & "*.xls")
Do While MyName <> ""    ' 开始循环。

    Set xlapp = GetObject(MyPath & "\" & MyName)    
    Set w_sheets = xlapp.Worksheets
    xlapp.Application.DisplayAlerts = False  '不显示警告
    xlapp.Worksheets("sheet2").Delete    
    Workbooks(MyName).Save
    xlapp.Application.DisplayAlerts = True
    xlapp.Application.Visible = True
    Workbooks(MyName).Close
    MyName = Dir    ' 查找下一个目录。
Loop
End Sub

后来,再和高手探讨调试,发现如果不用getobject,而是直接先用workbook.open就可达到正常。

Application.Workbooks.Open MyName '此是关键,先打开工作表
反正是为什么会出现上面的情形我也说不清楚,不过能解决问题就好。。。呵呵
 

本文地址:http://com.8s8s.com/it/it41963.htm