Excelmacros将值添加到具有公式的单元格

我试图设置一个macros来添加一个值,比如10,给一个已经存在公式的现有单元格。 我想细胞保持公式。

这是我迄今为止所做的:

Sub addvalue 'Keyboard Shortcut: Ctrl+Shift+A ActiveCell.Formula = ActiveCell.Formula + 10 End Sub 

这不适合我。 它适用于单元格只是一个数字,但不是当我试图调整的单元格是一个公式。

如果我试图调整的单元格包含=A1 + 4 ,我运行这个macros,我想它是macros后运行=A1 + 14

改变公式本身是有问题的。 但是你可以把+10加到最后,得到=A1 + 4 + 10

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

问题是ActiveCell.Formula返回一个string,你不能将一个数字添加到一个string。 你需要连接string和新的部分。


编辑

要做到这一点,它改变了价值,而不是串联:

 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 

这可能在所有情况下都不起作用,但对于简单的公式来说却行