VBA将公式插入现有单元格

时间:2017-01-31 18:57:57

标签: vba excel-vba excel

单元格A1指的是单元格A5,其值为5.5。我想向Cell A1插入一个圆形函数,读取= round(A5,)。我在下面尝试了下面的代码,但它没有按照我的意图工作。

Sub roundmacro()
   Dim n As String
   n = Range("A1").Value 'returns the value but I need reference from that range object instead  
   Range("A1").Formula = "=round(" & n & ",)"
End Sub

提前致谢

4 个答案:

答案 0 :(得分:4)

Range("A1").Formula = "=Round(" & Mid(Range("A1").Formula, 2) & ",)"

这会将任何现有公式转换为该公式的rounding。因此,如果初始公式为=A5,新公式将变为=Round(A5,)

P.S。适用于任何返回数字的初始公式(当然不能对字符串进行舍入)。

答案 1 :(得分:2)

所以你想让A1中的公式显示“A5”吗?

Range("A1") = "=Round(A5,)"

答案 2 :(得分:2)

最好在VBA中进行计算,如下所示:

Sub formulas()

Range("A1").Value = Application.WorksheetFunction.Round(Range("A5").Value, 0) ' You can put any formula after the 'Application.WorksheetFunction.'

End Sub

答案 3 :(得分:1)

对我来说很好,A1 = 6

Sub roundmacro()
   Dim n As String
   n = Range("A5").Value
   Range("A1").Formula = "=round(" & n & ",)"
End Sub