|
Dataセルの書式が時刻表示(hh:mm)の場合
他のセル書き入れた場合 下記表のごとく
シリアル値になります
これを8:30の時刻表示にしたいと思い
マクロを書きました
isdata関数で判定しましたが1行目がシリアル値のため
Falseとなり時刻表示ができません
2行目は書式が文字列のため時刻表示になります
Copyをしないで行いたいのです
よろしくお願いします
Sub Check()
Dim Ch As Boolean
Dim GetTime As String
Dim strDate As String
Dim Sht As Worksheet
Dim Gyou As Integer
Dim i As Integer
Dim Mjs As Integer
Set Sht = ThisWorkbook.Worksheets("Sheet1")
Gyou = 5
For i = 1 To 6
GetTime = Sht.Cells(Gyou, 3)
Ch = IsDate(GetTime)
Sht.Cells(Gyou, 4) = Ch
If Ch = False Then
Sht.Cells(Gyou, 5) = GetTime
Else
strDate = FormatDateTime(GetTime, 4)
Mjs = Len(strDate)
If Mjs < 6 Then
Sht.Cells(Gyou, 5) = strDate
End If
' 読込Dataに[AM]等がある場合6文字以上になる判定
Mjs = Len(GetTime)
If Mjs > 5 Then
Sht.Cells(Gyou, 5) = GetTime
End If
End If
Gyou = Gyou + 1
Next i
End Sub
No Data 値 結果
1 8:30 FALSE 0.354166667
2 8:30 TRUE 8:30
3 8:30 TRUE 8:30
4 10:30AM TRUE 10:30AM
5 FALSE
6 15:30 FALSE 15:30
|
|