Excel精英培训网

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

2个数字,用公式比较“相同”,用VBA比较“不同”?奇怪了!

[复制链接]
发表于 2021-9-18 10:28 | 显示全部楼层 |阅读模式
本帖最后由 诚信740 于 2021-9-18 10:30 编辑

2个数字,用公式比较“相同”,用VBA比较“不同”?奇怪了!
哪位老师帮忙看看,到底怎么回事?谢谢!

附件.rar (11.5 KB, 下载次数: 10)
发表于 2021-9-18 10:54 | 显示全部楼层
回复

使用道具 举报

发表于 2021-9-18 10:54 | 显示全部楼层
说明公式的运算精度与VBA的运算精度是不一样的。
你分别用以下2句语句运行一下就明白啦。
If Round(Range("A1"), 17) = Round(Range("B1"), 17) Then Range("D1") = "相同" Else Range("d1") = "不同"

If Round(Range("A1"), 16) = Round(Range("B1"), 16) Then Range("D1") = "相同" Else Range("d1") = "不同"
回复

使用道具 举报

 楼主| 发表于 2021-9-18 11:07 | 显示全部楼层
zjdh 发表于 2021-9-18 10:54
说明公式的运算精度与VBA的运算精度是不一样的。
你分别用以下2句语句运行一下就明白啦。
If Round(Range ...

谢谢你!还是没有搞明白?Range("A1")和Range("B1")看上去一模一样,难道VBA对这2个单元格的运算精度还不一样?
回复

使用道具 举报

 楼主| 发表于 2021-9-18 11:15 | 显示全部楼层
难道这2个数字有一大一小? 哪个大,哪个小?
回复

使用道具 举报

发表于 2021-9-18 12:38 | 显示全部楼层
诚信740 发表于 2021-9-18 11:07
谢谢你!还是没有搞明白?Range("A1")和Range("B1")看上去一模一样,难道VBA对这2个单元格的运算精度还不 ...

小数点后的数字不一定一样,就是这样了。
回复

使用道具 举报

 楼主| 发表于 2021-9-18 12:43 | 显示全部楼层
cui26896 发表于 2021-9-18 12:38
小数点后的数字不一定一样,就是这样了。

我仔细看过,单元格格式一样,小数点后的数字一模一样。谢谢你!
回复

使用道具 举报

发表于 2021-9-18 14:29 | 显示全部楼层
诚信740 发表于 2021-9-18 12:43
我仔细看过,单元格格式一样,小数点后的数字一模一样。谢谢你!

實數顯示的數字(excel只顯示前15位數)不見的是全部數字
決解方式上面老師已經說明過
下列程式利用不同精度定義的變數(Long、Single、Double)做比較,有不同比較結果
Sub abcd()
    Dim La As Long, Lb As Long     'E+18
    Dim Da As Double, Db As Double 'E+308
    Dim Sa As Single, Sb As Single 'E+38
    Dim xR As Range
    Set xR = [D1]

    If [A1] = [B1] Then xR = "相同" Else xR = "不同"
    xR(1, 2) = "[A1]=[B1]"

    La = [A1]: Lb = [B1]: Set xR = xR.Offset(1)
    If La = Lb Then xR = "相同" Else xR = "不同"
    xR(1, 2) = "Long,E+18"

    Sa = [A1]: Sb = [B1]: Set xR = xR.Offset(1)
    If La = Lb Then xR = "相同" Else xR = "不同"
    xR(1, 2) = "Single,E+38"

    Da = [A1]: Db = [B1]: Set xR = xR.Offset(1)
    If Da = Db Then xR = "相同" Else xR = "不同"
    xR(1, 2) = "Double,E+308"

    A = [A1]: B = [B1]: Set xR = xR.Offset(1)
    If A = B Then xR = "相同" Else xR = "不同"
    xR(1, 2) = "Variant"

End Sub

回复

使用道具 举报

发表于 2021-9-18 14:34 | 显示全部楼层
http://www.excelpx.com/forum.php?mod=attachment&aid=NDQ4NTg4fGY1OGYzYWE3ODIzMThmZTdjZWU2NDU2ZTdhODRlNzI3fDE3MTQxMjQ0NjI%3D&request=yes&_f=.jpg
20210918.jpg
回复

使用道具 举报

发表于 2021-9-19 18:37 | 显示全部楼层
不知道你是什么情况,我这里下载附件运行后是正确的,没有“不同”的错误!
附件.zip (13.32 KB, 下载次数: 1)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 17:41 , Processed in 0.401683 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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