
我有一張 Excel 工作表,其中包含數字清單。有時我想將 X 個單位從一個單元格移動到另一個單元格。
假設我有一個孩子的教室,每個孩子都有一定數量的彈珠。表格中有 2 列,第一列是名稱,第二列是彈珠。約翰給了比爾 375 顆彈珠。我想更新表格。
目前,我拿出一個計算器,進行減法和加法,並手動更新單元格。
這既麻煩又容易出錯。有沒有更好的辦法?
(我知道我可以在單元格中寫“=8300+375”,但最終每個單元格都會有一個愚蠢的長公式..)
答案1
答案2
馬特·尤哈斯這篇文章啟發我向您推薦 VBA 宏,因為它更快、更節省時間。我相信你能處理好它。
怎麼運作的:
- 我假設您在 Range 中有數據
A2:B4
。 將您要減去的值放入 中
C2:C4
。從開發者選項卡, 點選設計模式
然後插入& 從ActiveX 控制項
點選命令按鈕圖標並將其繪製在
工作表上。點選命令按鈕,您將進入 VB 編輯器 Windows。
複製貼上這段程式碼之間
私有子 CommandButton1_Click()
結束子。
Range("C2:C4").Select Selection.Copy Range("B2").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, SkipBlanks:= _ False, Transpose:=False Range("C2:C4").Select Selection.ClearContents Application.CutCopyMode = False
從 VB 編輯器 Windows 點選文件選單然後打關閉並返回 Microsoft Excel。
最後點擊命令按鈕。
您可以在 中找到新值Column B
(檢查螢幕截圖)。
注意
如果您只想從儲存格中的新值中減去舊值,則可以使用此 VBA 程式碼。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 2 And Target.Row = 1 Then
NewVal = Range("B1").Value
Application.EnableEvents = False
Application.Undo
OldVal = Range("B1").Value
Range("B1").Value = NewVal
Range("B1").Value = NewVal - OldVal
Application.EnableEvents = True
End If
End Sub
按ALT+F11開啟 VB 編輯器並複製貼上上面顯示的程式碼為標準模組。
一旦您覆蓋 中的值
B1
,程式碼就會從舊值中減去它並 用新值
重寫。B1
根據需要調整資料範圍。