防止减法出现在公式栏(Excel 2010,VBA)

寻求帮助! 嗨,我几乎完成了一个项目,有一部分我不明白我有一个+和一个button,从左边的单元格中添加数量到右边的单元格(在本例中为54)下面的链接)另外,按下的次数也是在最远的单元格上计算的(在这个例子中为2)

从我做的下面的代码:

 Range("L8").FormulaLocal = "=" & Replace(Range("L8").FormulaLocal, "=", "") & "+" & Range("G8") 

问题是,使用相同的代码,使用减法,我不想在公式栏中看到它,因为它结束为: =29+29+29-29-29+29... (第二图像)

我只想保持积极的一面。 在上面提到的代码中有什么东西可以改变,即使不显示减法,也不会删除已经存在的整个公式

谢谢!

我的Excel表格有助于更好的理解:

在这里输入图像说明

我不想在我的公式栏中看到:

在这里输入图像说明

首先,截图中的值不应该是58而不是54?

接下来,单元格是否真的需要包含一个公式? 正如@teylyn所提到的,只需在VBA中进行计算并设置单元格的值即可。 例如对于+button:

 Range("L8").Value = Range("L8").Value + Range("G8").Value 

最后,如果你真的需要保留公式,并且你知道单元格G8的值(被加或减的值)在+-button的点击之间永远不会改变,你可以先增加计数器(我认为是单元格M8 ),然后使用它的值来构build公式。

这可能看起来像下面的内容,虽然你想添加一些错误陷阱。 此外,如果您可以确保计数器永远不会消极,您可以消除ElseIf部分:

 Public Sub MinusButton_Click() Range("M8").Value = Range("M8").Value - 1 Range("L8").FormulaLocal = GetCellFormula End Sub Public Sub PlusButton_Click() Range("M8").Value = Range("M8").Value + 1 Range("L8").FormulaLocal = GetCellFormula End Sub Private Function GetCellFormula() Dim strFormula As String Dim intNum As Integer strFormula = "=" If Range("M8").Value > 0 Then For intNum = 1 To Range("M8").Value strFormula = strFormula & Range("G8").Value & "+" Next intNum ElseIf Range("M8").Value < 0 Then For intNum = Range("M8").Value To 1 Step -1 strFormula = strFormula & Range("G8").Value & "-" Next intNum End If strFormula = Left(strFormula, Len(strFormula) - 1) 'strip trailing symbol GetCellFormula = strFormula End Function 

否则,如果单元格G8的值可能更改,则唯一的select可能是对现有公式进行一些(可能)复杂的分析。 如果是这样,请先尝试一下,如果您有任何问题,请发布新的SO问题。