如何使用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:

  1. 将数字格式化为US-EN格式,然后将其附加到公式或
  2. 用自己的语言环境的格式编写公式

Vityata的答案给出了一个如何使用选项1的例子。

选项2看起来像这样:

 Sub added() Dim rational As Double rational = 1.1 ActiveCell.FormulaLocal = ActiveCell.FormulaLocal & "+" & rational End Sub