如何在Mac版Microsoft 365 Excel中用VBA实现数字截断而非四舍五入?
实现方案(Mac版Microsoft 365)
1. 配置工作表保护(仅开放指定单元格输入)
- 解锁目标输入区域:选中
A1:A10,右键选择「设置单元格格式」→ 切换到「保护」标签,取消勾选「锁定」,点击确定。 - 启用工作表保护:点击菜单栏「审阅」→「保护工作表」,按需设置保护密码,在权限选项中仅勾选「选定未锁定的单元格」,其余选项根据需求取消,最后点击确定。
2. 编写VBA代码实现数字截断(保留2位小数且不四舍五入)
- 打开VBA编辑器:按下
Option + F11快捷键,或在「开发工具」选项卡点击「Visual Basic」。 - 在左侧工程面板找到目标工作表(如
Sheet1),双击打开代码窗口,粘贴以下代码:
Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range ' 仅处理A1:A10范围内的单元格修改 If Not Intersect(Target, Me.Range("A1:A10")) Is Nothing Then Application.EnableEvents = False ' 关闭事件触发,避免循环执行 For Each cell In Intersect(Target, Me.Range("A1:A10")) If IsNumeric(cell.Value) Then ' 核心逻辑:乘以100后取整再除以100,实现截断2位小数 cell.Value = Int(cell.Value * 100) / 100 ' 强制设置显示格式为2位小数 cell.NumberFormat = "0.00" End If Next cell Application.EnableEvents = True ' 恢复事件触发 End If End Sub
- 代码说明:
Worksheet_Change事件会在单元格内容变更时自动触发Int(cell.Value * 100) / 100是截断核心:例如输入3.888时,3.888*100=388.8,Int函数取整为388,除以100后得到3.88,完全不进行四舍五入- 强制设置
0.00格式,确保输入后的数字始终显示2位小数
3. 保存与启用宏
- 保存文件:因为包含VBA代码,需将文件保存为「Excel启用宏的工作簿(.xlsm)」格式。
- 启用宏:打开文件时,Mac版365会弹出宏启用提示,选择「启用内容」即可让代码生效。
内容的提问来源于stack exchange,提问作者Milad
相关产品推荐
相关产品推荐

