別のアプリケーションからエクスポートされた日付の一覧があります。最初は、特別な変換や自動変換を行わずに、標準としてフォーマットされ、フォーマットはYYYY.MM.DD
です。Excel VBA:2桁の年月で非常に短い日付に日付を変更すると機能しません
は、以前私はスラッシュドットに置き換えられ、Excelが自動的にうまく働いた適切なロケールDD.MM.YYYY
、それらをフォーマットし、日付と日付を認識しました。
今年の最初の2桁(新しい書式DD.MM.YY
)を削除したかっただけですが、試したことはありません。これまでに行ったこと:
currentCell.Value = CDate(currentCell.Value)
:これはフォーマットを日付に切り替えますが、標準の長いフォーマットがそのまま適用されます。currentCell.NumberFormat = "dd.mm.yy;@"
マクロを記録して値を手動で変更することからわかるように、出力形式に違いはありません。currentCell.Value = FormatDateTime(currentCell.Value, vbShortDate)
:短い日付がDD.MM.YYYY
で、現在のロケールではDD.MM.YY
ではありません。format(date, "dd.mm.yy")
(Tom Prestonとmsaintが提案):NumberFormatバージョンと比較して出力を変更しません。
私が観察したもう1つの奇妙なこと:VBAごとの日付変更を適用した後、GUIを介した手動の日付書式変更はもはや不可能であり、何の効果もないようです。
これの原因は何か、そしてVBAの本当に短い日付を達成するにはどうすればいいですか?
try cDate(format(currentCell.Value、 "dd.mm.yy")) – msaint
もっとコードを投稿できますか?特に細胞を参照する方法は? – User632716