
我想了解是否可以讓 Excel 的功能像我見過的一些線上計算器一樣。例如:
主要區別在於,這些設計是為了讓計算器中的每個“單元格”都知道它是否輸入了值 - 然後它將根據其與其他單元格的功能關係(或沒有)有條件地計算其值。
這個使用「計算」按鈕,但有一些 Excel 式即時更新的範例,在值還不夠和/或值矛盾的情況下,他們通常會說明這一點,但是,這不是一個基本功能(還)。
我嘗試在 Excel 中使用條件實現類似的功能,但我發現單元格邏輯變得過於複雜快速地。在我的例子中沒有幫助,因為我正在求解的系統中的值(不是上面的值)可以從不同的輸入子集計算出來 - 你可能會說它「過度定義」。
Excel是否有一個選項或模式可以快速輕鬆地建立這種風格的介面?
或者,是否有人建立了類似的並且願意分享您的技巧?
這只是為了我自己的生產力(以及其他人,我希望!),我不希望它上線......
答案1
這可以使用 VB 在 Excel 工作表中如下完成
我們知道正方體的體積=長*寬*高
讓我們為此製作一個計算器:
給定任 3、4 個值,必須找到
建立 Excel 工作表
在 A1、A2、A3 輸入長度、寬度、高度。在 A5 類型捲中保留 A4 空白
現在使用工具列建立一個按鈕,右鍵單擊該按鈕並將文字更改為“計算”,為按鈕提供所需的名稱。
現在右鍵單擊按鈕並將巨集指派給該按鈕建立按鈕單擊命令如下:
Sub Button1_Click()
If Range("B1").Value = 0
Then Range("B1").Value = Range("B5").Value / Range("B3").Value / Range("B2").Value
If Range("B2").Value = 0
Then Range("B2").Value = Range("B5").Value / Range("B1").Value / Range("B3").Value
If Range("B3").Value = 0
Then Range("B3").Value = Range("B5").Value / Range("B2").Value / Range("B1").Value
If Range("B5").Value = 0
Then Range("B5").Value = Range("B1").Value * Range("B2").Value * Range("B3").Value
End Sub
答案2
正如您所發現的,使用工作表單元格執行此操作可能有點棘手。
但使用 VBA 來做到這一點相當容易。該程式碼可以位於 Worksheet_Change 事件中,該事件可以設定為在四個儲存格中的任何一個發生變更時觸發。
那麼邏輯很簡單:如果剛好三個儲存格有值,找出哪個儲存格為空,執行計算並將結果放入該儲存格中。