You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中获取下拉菜单的上一次选择值并写入指定单元格

实现D10下拉修改后D12显示上一次值的方案

你可以通过Excel VBA的工作表事件实现该需求,操作步骤如下:

  • 打开你需要设置的Excel文件,按Alt + F11唤起VBA编辑器
  • 在左侧工程资源管理器中,找到对应功能所在的工作表,双击进入该工作表的代码编辑页面
  • 将以下代码粘贴到编辑区域:
' 声明模块级变量存储D10的上一次值
Dim oldD10Val As Variant

' 激活工作表时初始化D10的当前值为旧值
Private Sub Worksheet_Activate()
    oldD10Val = Me.Range("D10").Value
End Sub

' 监听单元格修改事件
Private Sub Worksheet_Change(ByVal Target As Range)
    ' 仅判断修改的是D10单元格时执行逻辑
    If Target.Address = "$D$10" Then
        ' 关闭事件触发,避免修改D12时循环触发事件
        Application.EnableEvents = False
        ' 将上一次的旧值写入D12
        Me.Range("D12").Value = oldD10Val
        ' 更新旧值为本次修改的新值,供下一次修改时使用
        oldD10Val = Target.Value
        ' 恢复事件触发
        Application.EnableEvents = True
    End If
End Sub
  • 关闭VBA编辑器,将文件保存为启用宏的工作簿(.xlsm格式),否则后续打开文件时宏代码不会生效
  • 回到工作表,首次切换到该工作表时会自动记录D10的当前值作为初始旧值,之后每次修改D10的下拉选项,D12都会自动显示上一次的旧值

如果你需要自定义初始旧值,直接修改Worksheet_Activate事件中的赋值语句即可,比如设置初始旧值为JAN:oldD10Val = "JAN"

示例图

内容的提问来源于stack exchange,提问作者Sain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:15:00