公式重新计算整个列
我有这个公式的问题。 当“列B&C”不为空时,我正在使用“A列”中的date。 似乎工作正常,但它每天更新/计算到今天整个列中的以前的date。 如何防止以前的date发生变化?
=IF(AND($B6100>"",$C6100>""),TODAY(),"")
让我们假设原始数据是通过C9999在B2中input的。 将下面的事件macros放在工作表代码区域中:
Private Sub Worksheet_Change(ByVal Target As Range) Dim rIn As Range, r As Long Set rIn = Range("B2:C9999") If Intersect(rIn, Target) Is Nothing Then Exit Sub If Target.Count > 1 Then Exit Sub r = Target.Row If Cells(r, 1) <> "" Then Exit Sub If Cells(r, 2) = "" Or Cells(r, 3) = "" Then Exit Sub Application.EnableEvents = False Cells(r, 1) = Date Application.EnableEvents = True End Sub
因为它是工作表代码,所以安装和自动使用非常简单:
- 右键单击Excel窗口底部附近的选项卡名称
- select查看代码 – 这会popup一个VBE窗口
- 粘贴东西,closuresVBE窗口
如果您有任何疑问,请先在试用工作表上尝试。
如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx
要删除macros:
- 调出上面的VBE窗口
- 清除代码
- closuresVBE窗口
要了解有关macros的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
要了解有关事件macros(工作表代码)的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/event.htm
macros必须启用这个工作!