2016-04-25 21 views
0

我試圖根據時間戳在行中的特定單元格中添加工作班次標籤(日,擺動,墳墓)一個條目。如果沒有時間戳,我希望它什麼都不做。Excel VBA:如果時間在兩次之間,請將文本添加到行中,而不是如果空白

時間戳的格式爲「hh:mm:ss」,位於第6行/ F行。

這是我到目前爲止。如果沒有第四行,它會將所有條目標記爲天,否則不會骰子。

Sub Shift() 
Dim Time As Date, cel As Range 
For Each cel In Range("F2:F100000") 
    If IsEmpty(cell.Value) Then Exit For 
     If Time > TimeValue("06:00:00") And Time < TimeValue("14:00:00") Then 
      cel.Offset(0, 2).Value = "Day" 
     End If 
Next 

End Sub 
+0

'時間'是0,它還沒有被分配一次。 –

回答

2

究其原因,第四行是扔你意想不到的事情,是因爲你有Cell.Value,不cel.value

If IsEmpty(cel.Value) Then Exit For

這將解決您的邏輯測試。此外,你需要分配Time的東西,否則它只會使用00:00:00

編輯:高度建議你添加Option Explicit你子的頂部(或通過Excel選項)。如果你使用的話,這將迫使你聲明一個變量。這就是我在.1秒內捕獲到這個錯誤的原因 - 我複製了你的宏,試圖運行它,並立即突出顯示這條線。

相關問題