Office 365免费版:B1输入数字时自动插入静态日期至A1的公式需求
实现B1输入数字时A1自动填充静态当日日期(Office 365免费版)
问题原因
你使用DATE函数后日期会变更,是因为这类日期函数属于动态计算型,每次打开工作簿或触发工作表重新计算时,都会自动更新为当前日期,无法保留输入数据时的日期值。
解决方案
方案1:桌面版Office 365(支持VBA)
通过工作表的Change事件宏,在B1输入数字时给A1写入静态日期值:
- 右键点击目标工作表标签(如Sheet1),选择「查看代码」。
- 在VBA编辑器中粘贴以下代码:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$1" Then If IsNumeric(Target.Value) And Target.Value <> "" Then Range("A1").Value = Date End If End If End Sub
- 将工作簿另存为「启用宏的工作簿(.xlsm)」格式,确保宏代码能被保存。
- 回到工作表,在B1输入数字后,A1会自动填入当日日期,该日期是静态值,后续打开不会变更。
方案2:Office 365网页版(用Office Scripts)
网页版不支持VBA,可通过Office Scripts实现:
- 点击Excel网页版顶部的「自动化」→「新建脚本」。
- 在脚本编辑器中粘贴以下代码:
function main(workbook: ExcelScript.Workbook) { const sheet = workbook.getActiveWorksheet(); const targetCell = sheet.getRange("B1"); const dateCell = sheet.getRange("A1"); // 检查B1是否为非空数字 if (targetCell.getValue() !== "" && typeof targetCell.getValue() === "number") { // 写入当前日期(静态值) dateCell.setValue(new Date()); // 可设置日期格式,比如"yyyy/mm/dd" dateCell.setNumberFormatLocal("yyyy/mm/dd"); } }
- 保存脚本,回到工作表后,点击「自动化」→「运行脚本」选择刚才保存的脚本;也可在「自动化」→「触发器」中配置,实现B1修改时自动运行脚本。
内容的提问来源于stack exchange,提问作者uncleuhls
相关产品推荐
相关产品推荐

