首页 文章

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

提问于
浏览
6

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

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

Sub addvalue 
'Keyboard Shortcut: Ctrl+Shift+A

ActiveCell.Formula = ActiveCell.Formula + 10

End Sub

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

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

1 回答

  • 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
    

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

相关问题