创建带小数点并乘以其他单元格的简单公式(通过VBA)

问题描述 投票:0回答:2

我在主题方面有问题。如何在A1中创建公式,例如= 3.14 * A2

此代码无效,并返回错误在最终版本中,myVal将由其他功能提供

Public Sub DecimalInFormulaTest()
   Dim myVal As Double
   myVal = 3.14
   ActiveSheet.Cells(1, 1).FormulaR1C1 = "=" & myVal & "*R1C2"
End Sub
excel vba
2个回答
0
投票

我找到了一个解决方案,但这有点奇怪。我尝试使用CStr(),但是没有用只是Str()正常工作]

Public Sub DecimalInFormulaTest()
   Dim myVal As Double
   myVal = 3.14
   ActiveSheet.Cells(1, 1).FormulaR1C1 = "=" & Str(myVal) & "*R1C2"
End Sub

还有一件事。我在小数点分隔符不是逗号的区域


0
投票

这是因为CStr会根据特定语言环境转换值。在某些语言环境中,小数点是逗号,,当尝试将其写入公式时,最终会导致错误。

这可能是意外的,因为在编写此类语言环境公式时,您也必须用逗号编写它们,但是它在VBA中无法正常工作。当您使用代码编写公式时,它们必须是“特定于英语的”,即使用英语功能,点作为小数点分隔符。

因此,如果Str(num)而不是3.14num=3.14将返回3,14,这解决了您的问题。

相当长的解决方案,但是更好地表示了要解决的问题:

Replace(CStr(3.14), ",", ".")
© www.soinside.com 2019 - 2024. All rights reserved.