如何使用VBA将硬编码浮点数值添加到公式中
下面的VBA代码不起作用:(我认为addedvalue是合理的数字)
Dim addedvalue As Double addedvalue = 1 ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 & "+" & CStr(addedvalue)
但是这个工作正常:
ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 & "+" & 1
不幸的是,我必须把增值作为一个variables。
我也尝试ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 & "+" & addedvalue
但它也不起作用。
错误消息我gor是: enter image description here
更新问题是为什么这不起作用:
Sub added() Dim rational As Double rational = 1.1 ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 & "+" & rational End Sub
试过了,工作得很好:
Sub Test() Dim addedValue As Integer addedValue = 1 ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 & "+" & addedValue End Sub
对于每个人来说,使用逗号作为小数点分隔符,VBEditor有一个小的“function”。 长话短说,请尝试以下内容:
Sub TestMe() Dim addedvalue As Double addedvalue = 1.2 ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 & "+" & Replace(addedvalue, ",", ".") End Sub
这是我的自定义函数,我用这种情况(他们是相当多的):
Public Function fnStrChangeCommas(ByVal myValue As Variant) As String fnStrChangeCommas = Replace(CStr(myValue), ",", ".") End Function
如果您不使用美国版的Excel,您有两个简单的select:
- 将数字格式化为US-EN格式,然后将其附加到公式或
- 用自己的语言环境的格式编写公式
Vityata的答案给出了一个如何使用选项1的例子。
选项2看起来像这样:
Sub added() Dim rational As Double rational = 1.1 ActiveCell.FormulaLocal = ActiveCell.FormulaLocal & "+" & rational End Sub