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
这可能在所有情况下都不起作用,但对于简单的公式来说却行