日付形式への変更に問題があります。異なる日付を含むセルがありますが、すべてが日付としてフォーマットされているわけではありません。そのうちの 1 つは「yy-mm-dd」、たとえば「13-04-08」ですが、General としてフォーマットされています。私はこのコードを使用しています:
xCell = Format(xCell, "yyyy-mm-dd")
問題は、「13」または「08」が「yyyy」であるかどうかをExcelが判断できないため、何も変更されないことです。これを解決するにはどうすればよいですか?日付を変更する前に、どの数字が年であるかをExcelに伝える必要がありますか?どうすればよいですか? Format メソッドに含めることはできますか?
編集: 問題は別の場所にあるように見えるので、全体を説明する必要があると思います。日付を含むセルは、最初から次のように表示され、一般としてフォーマットされています。
13-05-06 A
13-05-21 A
...
次のコードで不要な「A」を削除します。
Sub rensa()
Dim Found As Range
For Each xCell In Range("D2:D999")
If IsEmpty(xCell.Value) Then Exit For
Set Found = xCell.Find(What:="A", LookIn:=xlValues, LookAt:=xlPart)
If Found Is Nothing Then
Else
xCell.Value = Left(xCell.Value, Len(xCell.Value) - 1)
End If
Next xCell
End Sub
これらのコードを試して、セル形式を日付に設定しました:
Range("D2:D999").NumberFormat = "yyyy-mm-dd"
Range("D2:D999").NumberFormat = "m/d/yyyy"
また、次のように For ループでそれらを実装しようとしました。
Sub rensa()
Dim Found As Range
For Each xCell In Range("D2:D999")
If IsEmpty(xCell.Value) Then Exit For
Set Found = xCell.Find(What:="A", LookIn:=xlValues, LookAt:=xlPart)
If Found Is Nothing Then
xCell.NumberFormat = "yyyy-mm-dd"
Else
xCell.Value = Left(xCell.Value, Len(xCell.Value) - 1)
xCell.NumberFormat = "yyyy-mm-dd"
End If
Next xCell
End Sub
しかし、それも思い通りにはいきませんでした。結果はすべて次のようになりますが、一般としてフォーマットされています。
13-05-06
13-05-21
...
したがって、A はなくなりましたが、それ以外は何も変わりません。