gpt4 book ai didi

vba - 工作表中的公式和 VBA 的工作方式不同

转载 作者:行者123 更新时间:2023-12-01 06:46:38 25 4
gpt4 key购买 nike

单元格 A1 包含数字 25,它是右对齐的,暗示它是一个数字,而不是文本。

D1 包含公式:

="" & A1

D1 中的 25 是左对齐的,暗示它是文本。下面的公式证实了这一点,该公式返回 1:

=IF(D1="25",1,0)

以下 VBA 代码将 25 放入 F1,但 25 是右对齐的,IF 测试返回 0:

Range("F1") = "" & Range("A1")

对差异有什么解释吗?

E1 包含以下公式,它给出左对齐的 25 并且 IF 测试返回 1:

TEXT(A1,"0")

但是,下面的代码给出了一个右对齐的 25 而 IF 测试返回 0:

Range("F1") = Application.WorksheetFunction.Text(Range("A1"), "0")

并不是说我必须使用 TEXT 函数。我只是想知道为什么它的工作方式与在工作表中时不同。

任何告诉何时或哪些工作表函数在 VBA 代码中不起作用的规则,或者更准确地说,会给出与在工作表中时不同的结果?

最佳答案

当 vba 将数据写入单元格时,如果需要,即如果数据类型与单元格的数字格式属性不同,则会调用内部类型转换函数。

您不希望调用该转换函数。

为避免调用此转换函数,请在写入数据之前为单元格选择适当的 Numberformat 属性。

Range("b4").NumberFormat = "@"
Range("b4") = Application.WorksheetFunction.Text(Range("A1"), "0")

关于vba - 工作表中的公式和 VBA 的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44981380/

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