gpt4 book ai didi

vba - 在 R1C1 公式中使用时,带小数的变量会转换为 2 位数字

转载 作者:行者123 更新时间:2023-12-04 21:30:46 24 4
gpt4 key购买 nike

所以我的问题很简单。在我的 VBA 代码中,我从 3 个单元格中检索 3 个值。
在下面的示例中,Value1 = 110,5;Value2=100;Value3=120

        Value1 = Worksheets(Countryname).Cells(k, 5).Value
Value2 = Worksheets(Countryname).Cells(k, 14).Value
Value3 = Worksheets(Countryname).Cells(k, 23).Value
Cells(k, 4).Formula = "=MIN(" & Value1 & "," & Value2 & "," & Value3 & ")"

由于未知原因,Excel 中显示的结果如下:
=MIN(110;50;100;130), instead of MIN(110,5;100;130)

问题在于第一个变量被转换为 2 个变量(110,5 转换为 110;5)

你有解决这个问题的办法吗?

在此先感谢您的帮助!

最佳答案

您的逗号作为十进制占位符与默认的 EN-US 列表分隔符冲突。使用 .FormulaLocal 并按照工作表上显示的公式编写公式。

dim value1 as string, value2 as string, value3 as string
Value1 = Worksheets(Countryname).Cells(k, 5).text
Value2 = Worksheets(Countryname).Cells(k, 14).text
Value3 = Worksheets(Countryname).Cells(k, 23).text
Cells(k, 4).FormulaLocal = "=MIN(" & Value1 & ";" & Value2 & ";" & Value3 & ")"
'alternate with qualified cell addresses
Cells(k, 4).formula = "=min(" & Worksheets(Countryname).Cells(k, 5).address(external:=true) & "," & _
Worksheets(Countryname).Cells(k, 14).address(external:=true) & "," & _
Worksheets(Countryname).Cells(k, 23).address(external:=true) & ")"

查看您使用 k 的方式,很容易推断您正在运行类似 for k=2 to lastRow 的循环。 .如果是这种情况,那么一次写出所有的公式。
with range(Cells(2, 4), cells(lastRow, 4))
.formula = "=min(" & Worksheets(Countryname).Cells(2, 5).address(0, 1, external:=true) & "," & _
Worksheets(Countryname).Cells(2, 14).address(0, 1, external:=true) & "," & _
Worksheets(Countryname).Cells(2, 23).address(0, 1, external:=true) & ")"
end with

如果您将值硬编码到工作表公式中,则不妨将结果值写入其中。
Cells(k, 4) = application.min(Worksheets(Countryname).Cells(k, 5).value2, _
Worksheets(Countryname).Cells(k, 14).value2, _
Worksheets(Countryname).Cells(k, 23).value2)

关于vba - 在 R1C1 公式中使用时,带小数的变量会转换为 2 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52673890/

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