Excel精英培训网

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

[已解决]EXCEL VBA中 0.884 输出的是.884 不是0.884 怎么解决呀

[复制链接]
发表于 2015-8-24 19:24 | 显示全部楼层 |阅读模式
Sub 文本()
Close #1
Open ThisWorkbook.Path & "\123456.txt" For Output As #1
I = 5 - 4.156
Print #1, I
Debug.Print I
Close #1
End Sub
写入的是 .884 不是0.884 怎么解决


最佳答案
2015-8-25 19:10
这个问题,是电脑地区环境设置中,数值前导0是否显示的设置决定的。

解决此问题,可以有2种方法。
1. 更改电脑设置:
With CreateObject("Wscript.Shell")
        Call .RegWrite("HKEY_CURRENT_USER\Control Panel\International\iLZero", "1") '设置成小数点前显示0 [0.7]
'        Call .RegWrite("HKEY_CURRENT_USER\Control Panel\International\iLZero", "0") '设置成小数点前不显示0 [.7]
    End With

当然,也可以用爱疯的暴力方法,判断首字符为小数点时,强行加上0改为0.

2. 使用输出结果的数字格式函数:FormatNumber()

    t = 7 / 10
    MsgBox FormatNumber(t, 3, -1)
或 MsgBox FormatNumber(t, 3, vbTrue)

具体用法可去查帮助文件。

…………由于小数点位数可能不同,所以用第一种方法比较不容易错。

发表于 2015-8-24 19:36 | 显示全部楼层
Sub 文本()
    Dim i
    Close #1
    Open ThisWorkbook.Path & "\123456.txt" For Output As #1
    i = 5 - 4.156
    If VBA.IsNumeric(i) And Left(i, 1) = "." Then i = "0" & i
    Print #1, i
    Debug.Print i
    Close #1
End Sub


可以加一句判断
回复

使用道具 举报

发表于 2015-8-24 20:18 | 显示全部楼层
  1. Sub 文本()
  2. Close #1
  3. Open ThisWorkbook.Path & "\123456.txt" For Output As #1
  4. i = 5 - 2.156
  5. i = Format(i, "0.000")
  6. Print #1, i
  7. Debug.Print i
  8. Close #1
  9. End Sub
复制代码
回复

使用道具 举报

发表于 2015-8-25 19:10 | 显示全部楼层    本楼为最佳答案   
这个问题,是电脑地区环境设置中,数值前导0是否显示的设置决定的。

解决此问题,可以有2种方法。
1. 更改电脑设置:
With CreateObject("Wscript.Shell")
        Call .RegWrite("HKEY_CURRENT_USER\Control Panel\International\iLZero", "1") '设置成小数点前显示0 [0.7]
'        Call .RegWrite("HKEY_CURRENT_USER\Control Panel\International\iLZero", "0") '设置成小数点前不显示0 [.7]
    End With

当然,也可以用爱疯的暴力方法,判断首字符为小数点时,强行加上0改为0.

2. 使用输出结果的数字格式函数:FormatNumber()

    t = 7 / 10
    MsgBox FormatNumber(t, 3, -1)
或 MsgBox FormatNumber(t, 3, vbTrue)

具体用法可去查帮助文件。

…………由于小数点位数可能不同,所以用第一种方法比较不容易错。

评分

参与人数 2 +16 金币 +10 收起 理由
七彩屋 + 6 赞一个!
爱疯 + 10 + 10 学习!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 04:51 , Processed in 0.306672 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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