gpt4 book ai didi

Excel VBA : get value of cell, 与单元格格式无关

转载 作者:行者123 更新时间:2023-12-01 18:49:46 24 4
gpt4 key购买 nike

在 Excel VBA 中,Range("A1").Value 应返回工作表上范围 A1 的基础值。但如果单元格格式设置为“会计”,我会得到不同的值。

如何获取单元格的实际基础值?

工作表

新建一个文档,在单元格中输入以下值:

  • A1:0.00001
  • A2:=A1
  • A3:=A1=A2

如您所料,A3 结果为TRUE。现在将 A2 的格式更改为会计,使用 2 位小数。 A2 现在读取 $ 0.00,但基础值仍然是 0.00001,因此 A3 仍然是 TRUE

VBA

新建一个模块并添加以下函数:

Function f(addr As String)
f = Range(addr).Value
End Function

如您所见,这只是使用 Range 对象的 Value 方法获取范围值。

工作表

返回工作表。输入以下值:

  • B1: =f("A1")
  • B2:=f(“A2”)
  • B3:=B1=B2

A1A2 具有相同的基础值,但 B1B2 没有,即使它们都是使用 A1A2Value 方法计算的。

A3 (=A1=A2) 中的表达式正在访问 A1A2 的实际底层值>。如何在 VBA 中访问这些值?

最佳答案

它最初对我来说也是正确的,因为我在输入公式后添加了格式。

要重现 - 重新编辑 B2。

要获取基础值,您需要使用 VALUE2 属性,该属性似乎忽略格式:

Function f(addr As String)
f = Range(addr).Value2
End Function

关于Excel VBA : get value of cell, 与单元格格式无关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10020783/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com