vb6,我用Vb6做的一个Excel Addin,如何捕获事件?

斯赛 2008-08-01 03:01:53
如题,如何捕获Excel里,点击"保存","关闭"等事件!

我的目的是:在保存Excel文件时,搜索同一目录是否有某个文件(1.txt),如果有的话,就删除它
...全文
270 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
斯赛 2008-08-01
  • 打赏
  • 举报
回复
谢谢
fvflove 2008-08-01
  • 打赏
  • 举报
回复
好象没有.
你可以看一下.

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)

'有这么多已经够多了.

斯赛 2008-08-01
  • 打赏
  • 举报
回复
谢谢楼上的,可以。有没有保存后的事件!!

呵,得寸进尺了!!
fvflove 2008-08-01
  • 打赏
  • 举报
回复

'要先引用 Excel库
Option Explicit
Dim WithEvents xlWork As Excel.Workbook

Private Sub Command1_Click()
Dim xlApp As New Excel.Application
Set xlWork = xlApp.Workbooks.Add
xlWork.Save
End Sub

Private Sub xlWork_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "文件马上就要保存了"
End Sub
斯赛 2008-08-01
  • 打赏
  • 举报
回复
获取 保存后 的事件?如何做?
_l_ 2008-08-01
  • 打赏
  • 举报
回复
保存时不清楚 如果要 保存后 倒有个法子 判断文件的修改日期...
斯赛 2008-08-01
  • 打赏
  • 举报
回复
谢谢楼上的,不过我要捕获的不是代码里的事件!

是用户点击 "保存" 这个按钮时的事件 ,这个 按钮 是Excel自身的。


_l_ 2008-08-01
  • 打赏
  • 举报
回复
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 Long

Set 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

864

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧