如题,如何捕获Excel里,点击"保存","关闭"等事件!我的目的是:在保存Excel文件时,搜索同一目录是否有某个文件(1.txt),如果有的话,就删除它

解决方案 »

  1.   

    Dim XApp As New Excel.Application '定义EXCEL对象
    Dim XBook As New Excel.Workbook  '定义工作簿
    Dim XSheet As New Excel.Worksheet '定义工作页
    Dim XFileName As String  '文件名
    Dim FieldNum As LongSet XApp = New Excel.Application
    Set XBook = XApp.Workbooks.Add'增加SHEET页
    XBook.Worksheets.Add
    Set XSheet = XBook.Worksheets(1) '设置EXCEL的第一页位工作页
    XSheet.Name = sDW       '更改工作页的名称
    XSheet.Rows.RowHeight = 14.25    '更改行高
        t = 1
        XSheet.Cells(t, 1) = "20" & ZT & "绩效考核"
        XSheet.Range("a" & t & ":c" & t).Merge
        XSheet.Range("a" & t & ":c" & t).Font.Bold = True
        XSheet.Range("a" & t & ":c" & t).Font.Size = 22
        XSheet.Rows("1:1").RowHeight = 36
        XSheet.Range("A1:c1").HorizontalAlignment = xlCenter
        XSheet.Cells(2, 2) = "" & Format(Now, "yyyy-MM-dd")
        XSheet.Range("b2:b2").HorizontalAlignment = xlCenter
        
        XSheet.Cells(2, 1) = TreeView1.SelectedItem.Text
        XSheet.Cells(2, 3) = ZT
         XSheet.Range("c2:c2").HorizontalAlignment = xlRight
        '工分
        t = 3
        XSheet.Cells(t, 1) = "绩效考核得分"
        XSheet.Range("a" & t & ":c" & t).Merge
        XSheet.Range("a" & t & ":c" & t).Font.Bold = True
        t = t + 1
        XSheet.Cells(t, 1) = "项    目"
        XSheet.Cells(t, 2) = "得    分"
        
        XSheet.Range("b" & t & ":c" & t).Merge
        XSheet.Range("A" & t - 1 & ":b" & t & "").HorizontalAlignment = xlCenter
    '表格水平居中
        XSheet.PageSetup.CenterHorizontally = True
     '以下为保存文件
    CommonDialog1.Filter = "*.XLS|*.XLS"
    CommonDialog1.FileName = sDW
    CommonDialog1.ShowSave
    XFileName = CommonDialog1.FileName
    If XFileName = "" Then Exit Sub
    '(可以把判断是否有文件的代码加在这里)
    XBook.SaveAs XFileName    '将内容保存到文件中,文件名在变量XFileName中
    XBook.Close  '关闭工作簿
    Set XSheet = Nothing  '释放对象,下同
    Set XBook = Nothing
    Set XApp = Nothing
      

  2.   

    谢谢楼上的,不过我要捕获的不是代码里的事件!是用户点击 "保存" 这个按钮时的事件 ,这个 按钮 是Excel自身的。
      

  3.   


    '要先引用 Excel库
    Option Explicit
    Dim WithEvents xlWork As Excel.WorkbookPrivate Sub Command1_Click()
      Dim xlApp As New Excel.Application
      Set xlWork = xlApp.Workbooks.Add
      xlWork.Save
    End SubPrivate Sub xlWork_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
       MsgBox "文件马上就要保存了"
    End Sub
      

  4.   

    好象没有.
    你可以看一下.xlWork 的事件只有以下这些Event Activate()Event AddinInstall()Event AddinUninstall()Event AfterXmlExport(Map As XmlMap, Url As String, Result As XlXmlExportResult)Event AfterXmlImport(Map As XmlMap, IsRefresh As Boolean, Result As XlXmlImportResult)Event BeforeClose(Cancel As Boolean)Event BeforePrint(Cancel As Boolean)Event BeforeSave(SaveAsUI As Boolean, Cancel As Boolean)Event BeforeXmlExport(Map As XmlMap, Url As String, Cancel As Boolean)Event BeforeXmlImport(Map As XmlMap, Url As String, IsRefresh As Boolean, Cancel As Boolean)Event Deactivate()Event NewSheet(Sh As Object)Event Open()Event PivotTableCloseConnection(Target As PivotTable)Event PivotTableOpenConnection(Target As PivotTable)Event SheetActivate(Sh As Object)Event SheetBeforeDoubleClick(Sh As Object, Target As Range, Cancel As Boolean)Event SheetBeforeRightClick(Sh As Object, Target As Range, Cancel As Boolean)Event SheetCalculate(Sh As Object)Event SheetChange(Sh As Object, Target As Range)Event SheetDeactivate(Sh As Object)Event SheetFollowHyperlink(Sh As Object, Target As Hyperlink)Event SheetPivotTableUpdate(Sh As Object, Target As PivotTable)Event SheetSelectionChange(Sh As Object, Target As Range)Event Sync(SyncEventType As MsoSyncEventType)Event WindowActivate(Wn As Window)Event WindowDeactivate(Wn As Window)Event WindowResize(Wn As Window)'有这么多已经够多了.