Day5-3-跟着孙兴华学习Excel VBA 第一季

目录

第31节 修改单元格内容会被记录到批注

 第32节 Excel文件按你指定的时间自动保存


第31节 修改单元格内容会被记录到批注

步骤:

1.打开需要处理工作表——点击该表开发工具——visual basic——点击thisworkbook插入模块——复制粘贴代码——不需要运行

'在所有过程之前用Dim语句定义的变量r1是模块级变量,应模块中所有的过程都可以使用它
Dim r1 '定义一个模块给变量,用户保存单元格的数据
'第一个事件过程,用于记录被更改前单元格中保存的数据
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count <> 1 Then Exit Sub '选中多个单元格时退出程序
If Target.Formula = "" Then '根据选中单元格中保存的数据,确定给变量r1赋什么值
    r1 = "空"
Else
    r1 = Target.Text
End If
End Sub
'第二个事件过程,用于批注记录单元格修改前后的信息
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count <> 1 Then Exit Sub
'定义变量保存单元格修改后的内容
Dim r2
'判断单元格是否被修改为空单元格
If Target.Formula = "" Then
    r2 = "空"
Else
    r2 = Target.Formula
End If
'如果单元格修改前后的内容一样则退出程序
If r1 = r2 Then Exit Sub
'定义一个批注变量
Dim r3
'定义一个变量保存批注内容
Dim r4
'将被修改单元格的批注赋给变量r3
Set r3 = Target.Comment
'如果单元格中没有批注则新建批注
If r3 Is Nothing Then Target.AddComment
'将批注的内容保存到变量r4中
r4 = Target.Comment.Text
'重新修改批注的内容=原批注内容+当前日期和时间+原内容+修改后的新内容
Target.Comment.Text Text:=r4 & Chr(10) & Format(Now(), "yyyy-mm-dd hh:mm") & "原内容:" & r1 & "修改为:" & r2
'根据批注内容自动调整批注大小
Target.Comment.Shape.TextFrame.AutoSize = True
End Sub

2.运行后,在表格中做内容修改,修改记录体现在备注里


 第32节 Excel文件按你指定的时间自动保存

1.打开需要处理工作表——点击该表开发工具——visual basic——点击thisworkbook插入模块——复制粘贴代码——点击运行

 2.Excel内容修改10秒后就会自动报存

根据自己需要修改时间,比如1分钟后保存,修改为TimeValue("00:01:00")
再次打开会自动调用保存程序

Sub otime()
    '10秒后自动运行WbSave过程
    Application.OnTime Now() + TimeValue("00:00:10"), "WbSave"
End Sub
Sub WbSave()
    ThisWorkbook.Save '保存本工作簿
    Call otime  '再次运行otime过程
End Sub


Private Sub Workbook_Open()
Call otime
End Sub

跟着孙兴华学习Excel VBA 第一季 01-32节 完结。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值