[英]Preventing subtraction to appearing in formula bar (Excel 2010, VBA)
求助! 嗨,我幾乎完成了一個項目,有一個部分我不明白我有一個+
和一個-
按鈕,從左邊的單元格添加到右邊的一個單元格的數量(在示例中讀取54)(顯示在下面的鏈接)此外,按下+
的次數也計算在最遠的單元格上(本例中為2)
從我做的以下代碼:
Range("L8").FormulaLocal = "=" & Replace(Range("L8").FormulaLocal, "=", "") & "+" & Range("G8")
問題是,使用相同的代碼,使用減法,我不希望在公式欄中看到它,因為它最終為: =29+29+29-29-29+29...
(第2張圖片)
我只想保持積極的一面。 在上面提到的代碼中是否有一些我可以改變的東西雖然不會顯示減法但不會刪除已存在的整個公式
謝謝!
我的excel表的一部分,以便更好地理解:
在公式欄中我不想看到的內容:
首先,屏幕截圖中的值不應該是58,而不是54?
接下來,細胞真的需要包含一個公式嗎? 正如@teylyn所提到的,只需在VBA中進行計算並設置單元格的值。 例如+
按鈕:
Range("L8").Value = Range("L8").Value + Range("G8").Value
最后,如果你真的需要保留公式,並且你知道單元格G8
的值(加值或減去的值)在+
和-
按鈕的點擊之間永遠不會改變,你可以先遞增計數器(我假設是單元格M8
),然后使用其值來構建公式。
雖然您想要添加一些錯誤捕獲,但這看起來可能類似於以下內容。 此外,如果您可以確保計數器永遠不會為負數,則可以消除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
的值可能會更改,則您唯一的選擇可能是對現有公式進行一些(可能)復雜的解析。 如果是這種情況,請先試一試,如果您有任何問題,請發布新的SO問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.