2009-07-02 3 views

Antwort

0

Ich bin nicht sicher, ob Ihr Handy ein Zeitfeld ist oder nicht. Wenn ja, können Sie Folgendes tun?

dim h as integer 
h = Hour(Cell(1,1)) 
4

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

+0

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 –