- Worksheet_SelectionChange选中触发事件
- Worksheet_Change更改触发事件
- Worksheet_Activate当前触发事件
- Workbook_BeforeSave提前保存事件
- Workbook_Open打开触发事件
- application.EnableEvents响应触发事件
登录页面
避免别人看到工作表的其他内容
before close & open
1、在before close隐藏除第一页外的所有表
2、在打开open事件中输入字
3、循环隐藏表格
before close
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sht As Worksheet
'隐藏所有表
For Each sht In Sheets
If sht.Name <> "登录界面" Then
sht.Visible = xlSheetVeryHidden
End If
Next
End Sub
open
Private Sub Workbook_Open()
Dim i
i = InputBox("请输入密码")
If i = "123" Then
Sheet1.Visible = xlSheetVisible
Sheet2.Visible = xlSheetVisible
Sheet3.Visible = xlSheetVisible
ElseIf i = "456" Then
Sheet4.Visible = xlSheetVisible
Sheet5.Visible = xlSheetVisible
Sheet6.Visible = xlSheetVisible
Else
MsgBox "密码输入错误"
ThisWorkbook.Close
End If
自动筛选
Change
筛选&还原
注:Criteria1:=Sheet1.Range(“l2”),直接选取单元格
Sub shaixuan()
Dim k As Integer
k = Sheet1.Range("a65536").End(xlUp).Row
//取消前面复制
Sheet1.Range("k1:p" & k).ClearContents
//筛选
Sheet1.Range("a1:f" & k).AutoFilter field:=4, Criteria1:=Sheet1.Range("l2")
//复制
Sheet1.Range("a1:f" & k).Copy Sheet1.Range("k1")
//取消筛选
Sheet1.Range("a1:f" & k).AutoFilter
End Sub
放入工作表的change
表示当单元格有更改的时候就会自动更新,相对的内容
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Call shaixuan
Application.EnableEvents = True
End Sub
自动更新
Activate
当更改某处值时,计算某地区总金额自动改动
在sheet表中的active输入
ActiveWorkbook.RefreshAll
自动备份
1、以时间为存储格式 now()表示当前时间
2、更改时间格式format(now(),yyyymmddhh)
3、当点保存的时候防止丢失
4、利用savecopyas放到workbook里面的beforesave ”路径“& format(now(),yyyymmddhh)&” .xls“
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ThisWorkbook.SaveCopyAs "路径" & Format(Now(), "yyyymmddhhmmss") & ".xls"
End Sub