保持 Excel 儲存格總數恆定

保持 Excel 儲存格總數恆定

我有一列包含 3 個單元格:A1、A2 和 A3。我希望當我增加或減少 3 個單元格中的任何一個時,3 個單元格的總數保持不變。也就是說,我需要任何單元格的任何增加或減少都均勻分佈在其他 2 個單元格之間。例如,我從 3 + 5 + 2 = 10 開始。請記住,事實上我將有大約 20 個單元格,我希望它們等於常數 100。

答案1

充滿A1透過A20值總計為100:

在此輸入影像描述

然後放置以下內容事件巨集在工作表程式碼區域中:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, Delta As Double
    Set rng = Range("A1:A20")
    If Intersect(Target, rng) Is Nothing Then Exit Sub

    Delta = (100 - Range("A21").Value) / 19
    Application.EnableEvents = False
        For Each r In rng
            If r.Address <> Target.Address Then
                r.Value = r.Value + Delta
            End If
        Next r
    Application.EnableEvents = True
End Sub

一旦巨集安裝並處於活動狀態,它將偵測到中值的任何更改A1透過A20並調整其他值以保留 100 一次僅更改一個儲存格。

因為它是工作表程式碼,所以非常容易安裝並自動使用:

  1. 右鍵單擊 Excel 視窗底部附近的選項卡名稱
  2. 選擇查看代碼 - 這將打開一個 VBE 窗口
  3. 將內容貼進去並關閉 VBE 窗口

如果您有任何疑慮,請先在試用工作表上嘗試。

如果儲存工作簿,巨集將隨之儲存。如果您使用的是 2003 年以後的 Excel 版本,則必須將檔案另存為 .xlsm 而不是 .xlsx

若要刪除巨集:

  1. 如上所示調出 VBE 窗口
  2. 清除程式碼
  3. 關閉VBE視窗

要了解有關巨集的更多信息,請參閱:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解有關事件巨集(工作表程式碼)的更多信息,請參閱:

http://www.mvps.org/dmcritchie/excel/event.htm

必須啟用巨集才能使其工作!

相關內容