请考虑以下代码:
Sub CombineNumbersToASTring()
' force Excel to show two decimals, even when there are trailing zeros
Range("A1", "B1").NumberFormat = "0.00"
' give some values to the previously mentioned cells
Cells(1, 1).Value = 0.1
Cells(1, 2).Value = 0.2
' combine the previous two values into one cell
Cells(1, 3).Value = "(" & Cells(1, 1).Value & ", " & Cells(1, 2).Value & ")"
End Sub
结果是错误的
0.10 0.20(0.1,0.2)
虽然它应该是
0.10 0.20(0.10,0.20)
那么,在Excel VBA中转换为字符串时,如何保留NumberFormat? CStr方法似乎不起作用 .
(编辑:我还要补充一点,在我的较大代码中,小数位数正在从一个单元格改变到另一个小数位,因此在编写VBA代码时,无法事先知道小数位数 . )
3 回答
我认为你需要在你的值周围使用格式为“0.00”,如:
尝试将数字格式范围扩展到C1列(单元格(1,3)):范围(“A1”,“C1”) . NumberFormat =“0.00”
至少有两种方法可以实现这一目标 .
使用
.Text
属性 .Cells(1,3).Value = "(" & Cells(1,1).Text & ", " & Cells(1,2).Text & ")"
在单元格中使用公式(1,3)
=CONCATENATE("(",TEXT(A1,"0.00"),", ",TEXT(B1,"0.00"),")")