Excelは、日が月より低い日(4月2日)よりも逆(例えば2月4日)に変更されます。

StackOverflow https://stackoverflow.com//questions/25077178

  •  02-01-2020
  •  | 
  •  

質問

私はExcelと日付でトレブルをしています。状況は次のとおりです。 マクロが中央スプレッドシートにインポートされるタブ数を持つ毎月のレポートがあり、約120列があります。インポート後、データに関連しているがデータに含まれていない最後の数列にいくつかの式を追加する必要がありますが、これらのうちの1つは期間番号です(私たちは4月1日と13日から始まる年のクライアントに勤務します。年間4週間の期間)。これを考慮すると、列Aのすべての日付、次に次の列のデータやその他のデータがあります。単純なvlookupは日付を調べ、期間を返します。

しかし、いくつかの日付がテキストとして保存されている(そしてvlookupに#n / aを持っている)、シンプルな修正、貼り付け特別な修正 - 空白のセルとボイスを追加します。そして私が手動でそれをするならば、これは仕事をします。しかし、これは私が下のコードに従ってプログラム的にそれをすることを試みたので、ユーザーのすべての作業を行うことを目的としています。

'Sheets("dates and Periods").Activate
'Range("P1").Copy
'Sheets("Data").Activate
'Range(Cells(2, 5), Cells(lastrow, 5)).PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd
'Range(Cells(2, 5), Cells(lastrow, 5)).NumberFormat = "dd/mm/yyyy"
.

私はそれが間違いなく空白になることを知っているので、私は「日付と期間」から空白のセルを入手します。

このコードを実行すると、ほとんどの値で機能します。ただし、日が月よりも小さい列eのすべての日に、例えば4月1日、4日以降、毎日の順位を切り替え、これはフォーマットされていません。周辺のデータ。

これを回避する方法はありますか?私は解決策を探しましたが、私が検索時に見つけることができるすべての問題は1904年の日付システムやフォーマットで行うことでした。

あらゆる助けが理解されるでしょう。

解決策:[部品に分割し、それを一緒に戻す]

For Each cell In Range(Cells(2, 5), Cells(lastrow, 5))

cell.Value = Mid(cell, 4, 2) & "/" & Left(cell, 2) & "/" & Right(cell, 4)

Next cell
.

役に立ちましたか?

解決

私はこの問題を何度も持っていました。答えは通常ソリューションに固有のものですが、DD-MMM-YYYY形式の文字列に日付を変換してから再度戻ることができます。

他のヒント

Excelセルに日付のようなものを入力すると、Windowsの地域の設定に従って解釈されます。フィットしない文字列はテキストとして入力され、Excelの日付に変わる文字列。この後者は通常意図された日と同じではありません。

インポートプロセス中にこれを修正することをお勧めします。これを行う方法は、含まれていない詳細によって異なりますが、プロセスはデータ/インポートプロセスを使用してテキストのインポートウィザードを通過することです。そのウィザードでは、各列のフォーマットを指定できます。 E.の日付フォーマットを含めると、すべての日付がデートとしてExcelによって適切に理解されるようになるでしょう。そのため、着信日のフォーマットがMDYの場合は、MDYを指定します。そしてExcelはそれを適切に保存してから、あなたのデフォルト設定のいずれか、またはその列をフォーマットする方法でそれを表示します。

他のオプションは、実行可能であれば、レポートジェネレータを変更することで、Windows地域設定

の短い日付形式と同じ形式の日付を生成することです。

私は私に電子メールを送る多数のファイルをデータベースにインポートし、これは一貫して問題です。この問題は、誤ったデータ、悪い書式設定、またはそのようなものが原因ではありませんが、単にExcelのエラー(マイクロソフトと呼んでいると思います。検索します。日付がアメリカのフォーマットで機能しない場合は、それをテキストファイルに変換します。

私が見つけた唯一の解決策は、Excelがそれを日付として理解できないようにソースシート上のデータを変更することであり、次にそれをインポートしてから、それを巨大なPhaffに変換します。マイクロソフトこれを並べ替えてください、それは非常に多くの時間プログラミング回避策を浪費しています!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top