2016-06-15 55 views
0

我試圖在Excel中實現廣告簡單功能。 我希望用戶在單元格A1中輸入一個值,在單元格A2中該函數應該是「A1中的值」+1。 在Excel中這是一項超級簡單的任務,但我確實需要一種不同的行爲:當用戶在A2中輸入一個值時,Excel應該計算「A2中的值」-1並將該值放入A1中(逆公式前一個)。公式及其在Excel中的逆

有沒有簡單的方法來做到這一點?

謝謝。

+0

您的意思是用戶應該能夠在A1或A2中輸入值嗎?根據他輸入的價值,另一個單元應該有答案? –

+0

@BuzzLightyear是的,沒錯。 – marcomanzoni

+0

你需要使用VBA來完成它。它會創建一個[Circular Reference](http://www.excel-easy.com/examples/circular-reference.html)。 –

回答

0

將下列事件宏工作表中的代碼區:

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim A1 As Range, A2 As Range 
    Set A1 = Range("A1") 
    Set A2 = Range("A2") 

    If Intersect(Union(A1, A2), Target) Is Nothing Then Exit Sub 

    Application.EnableEvents = False 
     If Not Intersect(A1, Target) Is Nothing Then 
      A2.Value = A1.Value + 1 
     Else 
      A1.Value = A2.Value - 1 
     End If 
    Application.EnableEvents = True 
End Sub 

因爲它是工作表的代碼,這是非常容易安裝和自動使用:

  1. 右鍵單擊該選項卡名稱靠近Excel窗口的底部
  2. 選擇查看代碼 - 這將彈出一個VBE窗口
  3. 粘貼東西並關閉VBE窗口

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

如果保存工作簿,宏將與其一起保存。 如果您正在使用一個版本的Excel更高然後2003,你必須保存 該文件作爲.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

宏必須是e nabled爲此工作!