iT邦幫忙

0

excel 在同一格儲存格輸入數值,自動帶入公式

  • 分享至 

  • xImage

想問一下Excel能不能在不用巨集的情況下,在同一格輸入數值後自動帶入公式
舉例:
我在A1輸入10,我想帶入的公式是A1x0.5,當我按Enter後,顯是值可以自動變為5

在B1格裡輸入 = A1 * 0.5
那A1格的所有變動,B1格都會跟著變


但問題有這麼簡單嗎?
李組長眉頭一皺,發覺案情並不單純
不同格OK,但想在同一格,輸入數字可以直接後端計算
A1= A1*0.5 會得到一個循環參照警告
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
海綿寶寶
iT邦大神 1 級 ‧ 2021-08-10 16:08:00
最佳解答

用不用巨集都一樣,答案是:不行

我在A1輸入10,我想帶入的公式是A1x0.5,當我按Enter後,顯是值可以自動變為5

不管任何方法,如果辦得到的話
請問 A1 應該是何值?
1.5
2.2.5 (=A1x0.5=5x0.5)
3.1.25 (=A1x0.5=2.5x0.5)
4.以上皆非

一張工作表有 17,179,869,184 個 cell
為什麼要把「輸入」「公式(輸出)」擠在同一個 cell
/images/emoticon/emoticon19.gif

因為程序書格式只有一格,但長官想要輸入就可以得到加權數值

恭喜你
這位長官大概把 Excel 當成電子計算機了

5
japhenchen
iT邦超人 1 級 ‧ 2021-08-10 16:55:48

動用VBA可以
進EXCEL按ALT+F11,選到左上角的"ThisWorkbook",把下方的程式貼上去

Dim changing As Boolean

Private Sub Workbook_Open()
    changing = False
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Address = "$A$1" And Not changing Then
        changing = True
        If (IsNumeric(ActiveSheet.Range("A1").Value)) Then
            ActiveSheet.Range("A1").Value = ActiveSheet.Range("A1").Value * 0.5
        End If
        changing = False
    End If
End Sub


就像這樣
https://ithelp.ithome.com.tw/upload/images/20210810/20117954fLsqvZ1YLq.jpg

於是,A1就可以被自己改變了....也不會發生自體死循環

我要發表回答

立即登入回答