Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3072|回复: 5

[已解决]关于小数点进舍VBA的问题?

[复制链接]
发表于 2015-3-6 16:43 | 显示全部楼层 |阅读模式
如下:
X为变量
X= Round(X+B,0)
这样子只能四舍五入。请问如果取值为 2.1或2.2或2.3或2.4 如何 显示为3 ?
最佳答案
2015-3-6 17:07
Sub test()
    Dim x, y
    '1)x是需判断的值
    x = 1


    '2)对判断的处理
    If x > 0 Then
        If x = Int(x) Then
            y = x
        Else
            y = Int(x) + 1
        End If
    Else
        y = "x不是正数"
    End If


    '3)返回结果
    MsgBox y
End Sub



根据需求,自己修改吧
发表于 2015-3-6 16:51 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2015-3-6 16:58 | 显示全部楼层
爱疯 发表于 2015-3-6 16:51
考虑负数么,比如-2.1显示为几

要考虑到列如计算结果为-4.2 或者为负数则提示不能为负数
回复

使用道具 举报

发表于 2015-3-6 17:07 | 显示全部楼层    本楼为最佳答案   
Sub test()
    Dim x, y
    '1)x是需判断的值
    x = 1


    '2)对判断的处理
    If x > 0 Then
        If x = Int(x) Then
            y = x
        Else
            y = Int(x) + 1
        End If
    Else
        y = "x不是正数"
    End If


    '3)返回结果
    MsgBox y
End Sub



根据需求,自己修改吧
回复

使用道具 举报

发表于 2015-3-6 17:09 | 显示全部楼层
Sub x()
MsgBox IIf(2.3 > 0, Application.RoundUp(2.3, 0), "不能为负数")
End Sub


2.3改成变量
回复

使用道具 举报

发表于 2015-3-6 17:10 | 显示全部楼层
  1. Sub Macro1()
  2. x = Val(Application.InputBox("请输入大于0的数值"))
  3. If x > 0 Then
  4.     MsgBox Application.RoundUp(x, 0)
  5. Else
  6.     MsgBox "X值非负,请重新输入"
  7. End If
  8. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 05:15 , Processed in 0.424349 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表