如何每14天自动切换单元格引用?可通过公式或VBA实现吗?
Excel D1单元格14天循环切换取值实现方案
两种实现方式均可满足需求:
1. 公式方案(无需代码,自动更新)
直接在D1单元格输入如下公式即可:
=IF(MOD(TODAY()-C1,28)<14,A1,B1)
逻辑说明:
- 以28天为一个完整循环周期(14天取A1、14天取B1)
- 用
TODAY()获取当前系统日期,计算当前日期和C1起始日期的差值 - 差值对28取余,余数小于14时取A1的值,否则取B1的值
- 若需兼容起始日期晚于当前日期的场景,可调整公式为:
=IF(TODAY()<C1,A1,IF(MOD(TODAY()-C1,28)<14,A1,B1))
2. VBA方案(适合需要固定值、不随公式自动刷新的场景)
操作步骤:
- 按下
Alt+F11打开VBA编辑器,在左侧项目栏双击你要设置的工作表名称 - 粘贴如下代码:
Sub SwitchD1Value() Dim diffDays As Long diffDays = Date - Range("C1").Value If diffDays < 0 Then Range("D1") = Range("A1") ElseIf diffDays Mod 28 < 14 Then Range("D1") = Range("A1") Else Range("D1") = Range("B1") End If End Sub
- 若需要每次打开工作簿时自动执行更新,可在「ThisWorkbook」模块中粘贴如下代码:
Private Sub Workbook_Open() Call SwitchD1Value End Sub
内容的提问来源于stack exchange,提问作者Leedo
相关产品推荐
相关产品推荐

