VBA zu verwenden, um die Zelle zu formatieren, um nur die Stunde anzuzeigen:
With Worksheets("Sheet1").Cells(1, 1)
.NumberFormat = "H"
End With
den Stundenwert in VBA zu lesen (unabhängig davon, wie die Zelle formatiert ist):
Dim hourValue As Integer
With Worksheets("Sheet1").Cells(1, 1)
If (IsDate(Format(.Value, "hh:mm:ss"))) Then
hourValue = Hour(.Value)
Else
// handle the error
End If
End With
Wenn Sie den angezeigten Wert im Code verwenden möchten, ohne die Konvertierung in VBA auszuführen, verwenden Sie die -Eigenschaft der Zelle (Range
) anstelle der Value
Eigentum. Sie müssen sicher sein müssen, dass die Zelle zuerst richtig formatiert ist:
Dim hourValue As Integer
With Worksheets("Sheet1").Cells(1, 1)
If ((.NumberFormat = "H") And _
(IsDate(Format(.Value, "hh:mm:ss")))) Then
hourValue = CInt(.Text)
Else
// handle the error
End If
End With
Wenn Sie nur den Stundenwert in einem Arbeitsblatt Formel verwenden Sie dann die HOUR()
Tabellenfunktion verwenden möchten - zum Beispiel =HOUR(A1)
Schließlich, wenn Sie nicht die Spalte manuell formatiert werden können, weil das Blatt geschützt ist, dann werden Sie nicht in der Lage sein, es in VBA formatiert werden entweder
Danke. Das hat für mich funktioniert. Dim hourValue As Integer Mit Worksheets ("Sheet1") Zellen (1, 1) If (IsDate (Format (.Wert, "hh: mm: ss"))). Dann hourValue = Stunde (.Wert) Else // Behandle den Fehler Ende If Ende mit –