excel - 如何去除整数上的小数
问题描述
在 Excel for Mac 中,我需要从公式生成的整数中删除零和小数点。VBA 代码基本上采用任何类型的分数并应用公式 =FRACTION+1,因此 5/2 变为 3.50,15/8 为 2.88,依此类推。
但是,当输入的分数是整数时,例如 7/1、10/1 等,整数的末尾有 .00。
这怎么可能不发生?
我不确定是否要在 VBA 代码完成其工作后做某事,或者是否可以将其合并到原始代码中。
只是告诉你,如果我将单元格转换后格式化为自定义和常规,这可以解决问题,但这不能事先完成,好像单元格是自定义和常规,当输入一个分数时,它变成了一个约会。
所以这是我的代码。除了整数有 2 位小数之外,它工作得很好。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo err_handler
Application.EnableEvents = False
If Target.CountLarge > 1 Then GoTo exit_handler
If Target = Empty Then GoTo exit_handler
If Not Intersect(Target, Columns("P")) Is Nothing Then
With Target
.NumberFormat = "@"
.Value = CDbl(Evaluate(.Value & "+1"))
.NumberFormat = "0.00"
End With
End If
exit_handler:
Application.EnableEvents = True
Exit Sub
err_handler:
MsgBox Err.Number & ": " & Err.Description
Resume exit_handler
End Sub
干杯
解决方案
一个快速的 if 语句可以对此进行排序。只需将您的行更改.NumberFormat = "0.00"
为以下内容:
If (.value - Fix(.value)) = 0 Then
.NumberFormat = "0"
Else
.NumberFormat = "0.00"
End If
Fix() 函数删除分数的小数部分,因此通过从原始值中减去它,您只剩下小数部分。如果剩下的为零,则该数字是一个整数,并且可以相应地格式化。
推荐阅读
- google-apps-script - 谷歌脚本 - 更新/查找和替换复制工作表中的引用
- spring - Spring和Hibernate如何解释@Entity和其他注解
- c# - Entity Framework Core - 从 TableName 创建动态 DbSet 模型
- typescript - node_modules/firebase-functions/lib/function-configuration.d.ts:4:64 - 错误 TS1005: ']' 预期
- azure - Blob 根据到达日期存储数据/文件
- laravel-5 - 碳日期转换仅在一个日期字段中失败
- android - 为什么开发者名称在 Google Play 商店中显示“No results found for pub:”?
- mqtt - 运行此 python 代码(mqtt)时出错
- python - 如何将自定义行输入到 OCR 的 tesseract?
- python - 如何在 python 中去除时间序列的趋势(去除异常值)