跨表组公式单元格值为10的倍数时显示UI鼓励消息的实现
Excel 实现方案
步骤1:定位目标单元格
假设存储完成句子数的计算结果在Sheet2!A1(来自另一标签页的组公式)。
步骤2:添加VBA宏
- 按
Alt + F11打开VBA编辑器,右键当前工作簿→插入→模块。 - 粘贴以下代码:
Sub CheckMilestone() Dim completedCount As Integer completedCount = Sheets("Sheet2").Range("A1").Value If completedCount > 0 And completedCount Mod 10 = 0 Then MsgBox "太棒了!已经完成" & completedCount & "个句子,继续冲!", vbInformation, "里程碑达成" End If End Sub
步骤3:设置自动触发
- 在VBA编辑器左侧双击
Sheet2(计算值所在工作表)。 - 顶部下拉菜单选
Worksheet,再选Calculate事件,粘贴代码:
Private Sub Worksheet_Calculate() Call CheckMilestone End Sub
Google Sheets 实现方案
步骤1:定位目标单元格
假设完成句子数的计算结果在Sheet2!A1。
步骤2:编写Apps Script
- 点击顶部菜单栏→扩展→Apps Script,删除默认代码后粘贴:
function checkMilestone() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const targetVal = ss.getSheetByName("Sheet2").getRange("A1").getValue(); if (targetVal > 0 && targetVal % 10 === 0) { SpreadsheetApp.getUi().alert(`太棒了!已经完成${targetVal}个句子,继续加油!`); } } function onChange(e) { if (e.changeType === "FORMULA" || e.changeType === "EDIT") { checkMilestone(); } }
步骤3:配置触发器
- 保存脚本为
MilestoneAlert,点击左侧触发器图标→添加触发器:- 函数选
onChange,事件源选「从电子表格」,事件类型选「更改」。
- 函数选
- 按提示完成授权,确保脚本正常运行。
注意事项
- 确保目标单元格返回整数,若为文本格式需先转数值(Excel用
Val(),Google Sheets用Number())。
内容的提问来源于stack exchange,提问作者Mahmoud Ahmed
相关产品推荐
相关产品推荐

