|
▼hamaki さん:こんにちは〜
>isdata関数で判定しましたが1行目がシリアル値のため
>Falseとなり時刻表示ができません
isdata関数 → IsDate関数ですね
思うに、Rangeのあとのプロパティを省略しないで、最適な
プロパティを明示したほうがいいと思う。
そうすれば、結局、
> Dim Ch As Boolean
> Dim GetTime As String
> For i = 1 To 6
> GetTime = Sht.Cells(Gyou, 3)
> Ch = IsDate(GetTime)
の GetTime = Sht.Cells(Gyou, 3) を
GetTime = Sht.Cells(Gyou, 3).Text にするだけで、すべてが
目論見通りに動くとおもう。
(注)↓GetTime という変数は そういう関数と間違えやすいので、
strTime に変えてあります。
Sub Check2()
Dim Ch As Boolean
Dim strTime As String
Dim strDate As String
Dim Sht As Worksheet
Dim i As Long
Dim Mjs As Integer
Set Sht = ThisWorkbook.Worksheets("Sheet1")
For i = 5 To 10
strTime = Sht.Cells(i, 3).Text
Ch = IsDate(strTime)
Sht.Cells(i, 4).Value = Ch
If Ch = False Then
Sht.Cells(i, 5).Value = strTime
Else
strDate = FormatDateTime(strTime, 4)
Mjs = Len(strDate)
If Mjs < 6 Then
Sht.Cells(i, 5).Value = strDate
End If
' 読込Dataに[AM]等がある場合6文字以上になる判定
Mjs = Len(strTime)
If Mjs > 5 Then
Sht.Cells(i, 5).Value = strTime
End If
End If
Next i
End Sub
|
|