2017-07-31 119 views
1

我想將一列中的日期時間值轉換爲小時值。現在我嘗試了一個循環,但我得到的錯誤說類型不兼容。任何想法?VBA將日期時間轉換爲列中的小時數

Dim l As Range 
For Each l In Hour.Range("A1", "A" & lngLastRow) 
If l.Value <> "" Then l.Value = Hour(l.Value) 
Next 
+0

在沒有看到數據,我的猜測是,你有字符串而不是單元格中的日期。 –

+0

該coul實際上是問題,是否有可能在小時函數內使用CDate? – Vedad

+0

但是它實際上與小時(A2)一起工作,當我做它manualy,我的意思是在VBA代碼之外,所以我想我有它在正確的格式。 – Vedad

回答

1

出在世界上的所有可能的名字,你真的命名工作表小時還是我錯了?

如果是這種情況,只需重命名工作表,它會自動修復一切,因此您會很高興。對於任何變量或對象,千萬不要使用Minute,Hour,Second,Integer等名稱。

這是一個可能的解決方案,那麼:

Option Explicit 

Public Sub Testing() 

    Dim l    As Range 
    Dim lngLastrow  As Long: lngLastrow = 6 

    For Each l In ActiveSheet.Range("A1", "A" & lngLastrow) 
     If l <> "" Then 
      l.Offset(0, 1) = Format(l, "HH") 
     End If 
    Next 

End Sub 

確保此更改名稱,而不是標籤:

enter image description here

+0

這個作品,謝謝:) – Vedad

+0

@Vedad - 不客氣。 – Vityata