2016-06-06 29 views
-2

我想創建一個跟蹤生產機器停機時間的表格。操作員將使用具有列停機時間開始和停機時間的表格。每當有事情發生,他們不得不離開我想讓他們只需要在停機時間統計題目下點擊空單元格,時間就會出現/記錄自己在單元格中,然後同樣停下來。如何獲得一個Excel單元格來顯示它被選中的時間

我站在如何=now()工作,但它然後顯示文件打開的時間,我希望它只顯示單元格時被選中。

任何幫助非常感謝!我以前從來沒有在excel中做過這樣的事情。

+0

或者您可以按CTRL + SHIFT +:添加當前時間戳 –

+0

我需要這樣做盡可能的簡單,所以只需要半秒鐘的時間。 CTRL + SHIFT +:要求操作員記住 – Vbasic4now

回答

1

你需要一些VBA。在您的VBE(Alt + F11)到您的工作表,並使用類似以下內容:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

    'Check to see if the click/selected cell is in columns A or B 
    If Not Intersect(Target, Range("A:B")) Is Nothing Then 

     'Make sure just one cell is selected: 
     If Target.Cells.Count = 1 Then 

      'Update the value 
      Target.Value = Now() 
     End If 
    End If 

End Sub 

在這裏,我們使用的是Worksheet_SelectionChange()事件。只要在放置此代碼的工作表上檢測到選擇更改,此事件就會觸發。當檢測到更改時,它將測試以查看選擇是在A列還是B列。它還將進行測試以確保只有一個單元格被點擊(否則突出顯示這些列會導致列中的每一行都隨時間更新,這會很糟糕)。如果這一切都通過,那麼它只是將選定的單元格(目標)值設置爲當前時間。

+0

謝謝你的幫助,如果它在一堆工作表中有其他一些宏,我想你會從之前的人向他們調用它來添加它嗎? – Vbasic4now

+0

這取決於那些其他宏是什麼。他們是否也觸發了單頁事件?如果是這樣,那麼你最終可能導致一個無限循環,最終......太陽鏡> ...堆棧溢出。如果是這種情況,那麼你會想看看'application.enableEvents',你可以設置爲'true/false'來防止你的事件在vba運行時被觸發。 – JNevill

+0

我看到可能會干擾的唯一一條線是「使屏幕不會在宏運行時不被嚇跑」 Application.ScreenUpdating = False。 此外,我如何使宏只適用於從這些列中的一定數量的行? – Vbasic4now

相關問題