Excel如何让日期单元格随着某个单元格的修改而自动更新

前几天,我在做一个报价底价的Excel文件,由于旅游行业的报价很特殊,比如宾馆的底价经常会发生变化,所以我在底价的excel文件中增加了一列:最后修改时间。这样报价的时候就可以根据最后的更新时间来判断当前的底价是否准确。

考虑到excel应该支持VB脚本,所以我就在网上搜索或者向朋友咨询excel能否有这样一个功能:当某个单元格的内容发生变化的时候,同行的日期单元格是否可以自动更新为当前日期。然而很失望的是,无论是网络搜索到的结果还是推特上朋友回答的结果多是直接显示当前日期(在单元格输入=now(),此后每次打开文件,该单元格的内容就会自动改成当前日期),而不是根据某个单元格发生变化而改变日期,当然建议我用VBA的朋友除外。

今天,我继续搜索和摸索,总算是找出了相应的解决方案了,方法如下:

右击sheet1标签>查看代码>粘贴下面的代码 来源:http://club.excelhome.net/viewthread.php?tid=439225

Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Target.Cells ‘如果用填充等同时改变了多个单元格,则一个个的进行判断
With c
If .Column = 2 Then ‘判断被改变的单元格是否在B列
Application.EnableEvents = False
.Offset(0, -1) = Date ‘如果在B列,则在同行的A列填充当前系统日期
Application.EnableEvents = True
End If
End With
Next
End Sub

上面的代码其实很容易看懂,不过我也还是给解释一下

If .Column = 2 表示第二列的任意个单元格发生变化,如果你是第三个单元格,则改成 If .Column = 3,以此类推。

.Offset(0, -1) = Date 这个可以望文生义,offset表示偏移,比如.Offset(0, -1)表示同行左边一列 .Offset(0,2)表示同行右边数2列 ,.Offset(1,2)表示下面一行,右边数2列,=date表示将这个单元格改成当前的日期。

华丽的解决了这个问题。

 

转自:http://www.chengzhang.info/node/125

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值