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

使用VBA删除Excel工作簿中名为'sheet2'的工作表后,出现文件打开显示为空,但实际上工作表仍存在的问题。通过在删除前先用`Application.Workbooks.Open`打开文件,可以避免该问题,使Excel正常显示。
摘要由CSDN通过智能技术生成

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值