昨晚写一代码,将备将某目录下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 '此是关键,先打开工作表 反正是为什么会出现上面的情形我也说不清楚,不过能解决问题就好。。。呵呵 
|