我刚开始接触vba。
现在开始做一个vba项目有点东西搞不明白。想问一下
假设有一个excel叫sag.xls
其中有一个页为sheet1吧
我想在sag.xls关闭的时候单独对sheet1中的内容做处理。应该在哪里写呢?

解决方案 »

  1.   


    Option ExplicitDim WithEvents xlApp As Excel.Application
    Dim WithEvents xlWork As Excel.WorkbookPrivate Sub Command1_Click()End SubPrivate Sub Form_Load()
        Set xlApp = New Excel.Application
        Set xlWork = xlApp.Workbooks.Open("C:\sag.xls")  '打开 C:\sag.xls 文件End SubPrivate Sub xlWork_BeforeClose(Cancel As Boolean)
      '现在 sag.Xls 要关闭了/
      '对Sheet1进行处理
      'xlWork.Worksheets ("Sheet1")  '返回的就是 Sheet1 工作本。你要怎么处理,前面都加上此前缀
      MsgBox "文件正在关闭中."
    End Sub
      

  2.   

    谢谢。。不过可能我说的有点不对。比如我现在正打开这个sag.xls 文件
    但是我想在我关闭他的时候调用一个方法。我自己写的方法可以么?
    例如sheet1 中我自己写了个clear方法。对其中的某些单元格做处理
    我想在文件关闭的时候再调用一次这个方法。
    Private Sub Workbook_BeforeClose(Cancel As Boolean)    Dim wk_book     As Workbook     'ExcelBOOK
        Dim wk_sheet    As Worksheet    'ExcelSHEET
        
        
        Set wk_book = Workbooks(”sag.xls“)
        Set wk_sheet = wk_book.Worksheets(“sheet1”)
     
        这下面应该怎么调用sheet1中的clear方法呢?    
    End Sub
      

  3.   

    xlWork.Worksheets ("Sheet1").clear