Excel宏用于向具有公式的单元格添加值

时间:2017-09-27 15:08:18

标签: excel vba excel-vba excel-formula

我正在尝试设置一个宏,将值(例如10)添加到其中包含公式的现有单元格中。我希望细胞保持配方。

这是我到目前为止所做的:

Sub addvalue 
'Keyboard Shortcut: Ctrl+Shift+A

ActiveCell.Formula = ActiveCell.Formula + 10

End Sub

这对我不起作用。当单元格只是一个数字时,它可以工作,但是当我试图调整的单元格是公式时,它不起作用。

如果我尝试调整的单元格包含=A1 + 4并运行此宏,我希望在宏运行后它为=A1 + 14

1 个答案:

答案 0 :(得分:5)

改变公式本身是有问题的。但您可以将+10追加到最后,并使用以下内容获取=A1 + 4 + 10

ActiveCell.Formula = ActiveCell.Formula & "+ 10"

问题是ActiveCell.Formula返回一个字符串,您无法在字符串中添加数字。您需要连接字符串和新部分。

修改

为了使它改变值而不是连接:

Sub addvalue()
'Keyboard Shortcut: Ctrl+Shift+A
Dim strsplit() As String
Dim i As Long
Dim dn As Boolean


dn = False

strsplit = Split(Mid(ActiveCell.Formula, 2), "+")
For i = LBound(strsplit) To UBound(strsplit)

    If IsNumeric(strsplit(i)) Then
        strsplit(i) = CDbl(strsplit(i)) + 10
        dn = True
        Exit For
    End If
Next i

ActiveCell.Formula = "=" & Join(strsplit, "+") & IIf(dn, "", "+ 10")

End Sub

这可能不适用于所有情况,但对于简单的公式,它可以。