私のExcelファイルには、100列あります。一部の列 (列 A、C、F、G など) をテキストから日付に変換したいと考えています。各列を1列ずつ手動で変更すると、本当に時間がかかります。どうすればできますか?VBAを使用して?
'31-Dec-2011 00:00:00' のような元のテキスト列フォーマット。「dd/mm/yyyy」に変換したい 2011/12/31
ありがとう
私のExcelファイルには、100列あります。一部の列 (列 A、C、F、G など) をテキストから日付に変換したいと考えています。各列を1列ずつ手動で変更すると、本当に時間がかかります。どうすればできますか?VBAを使用して?
'31-Dec-2011 00:00:00' のような元のテキスト列フォーマット。「dd/mm/yyyy」に変換したい 2011/12/31
ありがとう
問題の列には次を使用します。
Columns("A:A").Select
Selection.NumberFormat = "m/d/yyyy"
実際に各セルで時間を切り詰めたい場合は、これがアプローチになる可能性があります。
ターゲット時間が「target」というシートの列 A にあり、A1 の列ヘッダーが「StartTime」である場合
以下を修正し、引数を追加して、列アドレスを取得することができます。次に、複数の列に対してこの操作を実行するために、複数回呼び出すことができます。
Sub ChopOffTime()
dim mySheetName as string
mysheetname = "target" '<<<<change to your sheet name
myLstRow = Excel.ActiveWorkbook.Sheets(mysheetname ).Cells(Excel.ActiveWorkbook.Sheets(mysheetname ).Rows.Count, Excel.ActiveWorkbook.Sheets(mysheetname).Range("A2").Column).End(Excel.xlUp).Row
With Excel.ActiveWorkbook.Sheets(mysheetname)
.Columns("B:B").Insert Excel.xlToRight
.Range("B2:B" & myLstRow).FormulaR1C1 = "=TIME(HOUR(RC[-1]),MINUTE(RC[-1]), SECOND(RC[-1]))"
.Range("B1") = "StartTime" '<<<<<change to appropriate header
.Columns("B:B").Copy
.Columns("A:A").PasteSpecial Excel.xlPasteValues
.Columns("B:B").Delete Excel.xlToLeft
End With
End Sub
皆さんありがとう。
手順を簡素化するために、ユーザーが列の形式を変更するために実行するマクロを開発したところ、エラーなしで mdb に Excel をインポートできます。