0

時間の値が 1:23:45 AM のセルがあり、時間の値だけを表示するか、それを他の計算に使用したいと考えています。vbaを使用してこれを行う必要があります。いいえ、列を手動でフォーマットできません。

ありがとう、サム

4

2 に答える 2

4

VBAを使用してセルをフォーマットし、時間のみを表示するには:

With Worksheets("Sheet1").Cells(1, 1)
    .NumberFormat = "H"
End With

VBAで時間の値を読み取るには(セルのフォーマットに関係なく):

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

VBAで変換を実行せずにコードで表示された値を使用する場合は、プロパティではなくTextセルのプロパティ( )を使用します。最初に、セルが正しくフォーマットされていることを確認する必要があります。RangeValue

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

ワークシートの数式で時間の値を使用するだけの場合は、HOUR()ワークシート関数を使用します-例:=HOUR(A1)

最後に、シートが保護されているために列を手動でフォーマットできない場合は、VBAでもフォーマットできません。

于 2009-07-03T01:45:45.027 に答える
0

あなたのセルが時間フィールドかどうかわかりません。もしそうなら、あなたは次のことをすることができますか?

dim h as integer
h = Hour(Cell(1,1))
于 2009-07-02T22:35:09.343 に答える