2015-04-02 76 views
-1

我的工作,看起來像這樣的表:Excel中增加自己的價值(循環引用)

Last Type | Today Type | N Days 
------------------------------- 
    Type1 | Type2 | 0 
------------------------------- 
    Type1 | Type1 | 1 
------------------------------- 
    Type2 | Type2 | 20 
------------------------------- 

每天的表在「今天類型」更新了各自的類型。 列「N天」將計算上一次類型的天數。

+1

請編輯您的問題以準確描述問題與您的代碼是什麼:期望的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。請參閱:[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – 2015-04-02 11:11:48

+0

您忘記發佈問題。 – 2015-04-02 11:21:20

回答

0

你可以在excel中使用迭代計算選項,但我不是一個很大的粉絲,對我來說這個任務似乎很適合使用Worksheet_change事件處理程序。

嘗試在工作表中的代碼中插入這樣的代碼 - 而不是標準模塊(所以右鍵單擊工作表名稱選項卡上 - >顯示的代碼):

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim mycell As Range 
If Not Intersect(Target, Columns(2)) Is Nothing Then 
    For Each mycell In Intersect(Target, Columns(2)) 
    If mycell.Value = mycell.Offset(0, -1).Value Then 
     mycell.Offset(0, 1).Value = mycell.Offset(0, 1).Value + 1 
    Else 
     mycell.Offset(0, 1).Value = 0 
     mycell.Offset(0, -1).Value = mycell.Value 
    End If 
    Next mycell 
End If 
End Sub 

切記妥善保存您的工作簿中像包含宏的格式xlsm或xls 上面的代碼用於列A和B(先前和當前)中的數據和C中的計數器。現實生活中不使用列(2),最好使用Range(「B2:B10」)或類似的(它在上面的代碼中出現兩次)。

+0

謝謝Kaper!這正是我需要的! :)我沒有足夠的代表投票了抱歉... – FT29 2015-04-02 15:21:23

+0

沒問題,我很高興它的工作。 如果您願意,您可以在excelforum.com上查看聲譽的可能性(順便提一下附件) - 請參閱我的個人資料:http://www.excelforum.com/members/682378.html – Kaper 2015-04-04 19:44:16