如何删除整数上的小数



在Excel for Mac中,我需要从公式生成的整数中删除零和小数点。VBA代码基本上采用任何类型的分数,并应用公式=分数+1,因此5/2变为3.50,15/8变为2.88,依此类推

但是,当输入的分数是整数时,比如7/1、10/1等,整数的末尾有.00。

这怎么可能不发生呢?

我不确定是否需要在VBA代码完成其工作后进行某些操作,或者是否可以将其合并到原始代码中。

只是想让你知道,如果我在转换后将单元格格式化为"自定义"one_answers"常规",这就解决了问题,但这不能事先完成,就像单元格是"自定义"或"常规"一样,当输入分数时,它就变成了日期。

这是我的代码。除了整数有两个小数点外,它运行得很好。

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((函数删除小数的小数部分,因此通过从原始值中减去小数部分,只剩下小数部分。如果剩下的是零,那么这个数字就是一个整数,可以相应地格式化。

非常感谢@NautMeg,他为我的问题提出了这个简单的解决方案

If (.value - Fix(.value)) = 0 Then
.NumberFormat = "0"
Else
.NumberFormat = "0.00"
End If

相关内容

  • 没有找到相关文章

最新更新