4

データの抽出、予測の計算、Webページの公開などを行う自動化されたスプレッドシートがたくさんあります。これは非常に厄介なシステムであり、(たとえば、実際のWebサービスで)やり直したいのですが、しません。それを行う許可を持っています。

Excel 2007を実行し、ほとんどのスプレッドシートを.xlsmsに変換します。

とにかく、私にはわからない何らかの理由で、特定のスプレッドシートは、特定の数値セルを一見ランダムな時間の日付としてフォーマットします。ご想像のとおり、問題を突き止めるのは困難です。通常、誰かがデータの読み取りについて厄介な電子メールを書いたときにのみわかり3-Feb-1901ます400(Excelは1900年にうるう年があったと考えているようです)。

問題のセルを明示的に数値形式に数回設定しましたが、1週間後の日付で埋められていることがわかりました。

マクロをスキャンしました(多くは古いExcel 4.0マクロ言語です)。フォーマットの変更はないようです。すべてのコピー/貼り付けは値として実行され、ソースセルの書式は保持されません。

問題のシートには条件付き書式ルールはありません。

サブルーチンで必要に応じてセルをフォーマットするために少しVBAを追加するとAuto_Open、問題を回避できるように見えます。

この修正で十分ですか、それとも1週間以内に、日付形式が計算の途中で表示されるようになりますか?そうでない場合、根本的な原因は何ですか?それを修正するにはどうすればよいですか?

1つ:このソースNormalから、Excel'07がスタイル設定されたセルを自発的にフォーマットに変更する可能性があることを読みました[$-409]m/d/yy h:mm AM/PM;@。変更された私のセルのいくつかは間違いなくスタイリングされていましたがNormal、明らかにすべてではありません。

4

2 に答える 2

4

問題のセルは、コピー/貼り付けされたデータの受信者、または外部/クエリされたデータの受信者であると想定していますか?

貼り付けたデータをExcelのセルに追加すると、ソースが「一般」または「数値」であっても、「一般」形式としてリストされているものに最適な形式を決定するルーチンが実行されます。宛先セルを「数値」形式に設定しても、この問題が解決しない場合があります。しかし、これを必要な方法で機能させる唯一の方法は、貼り付け/更新/更新操作の前に、問題の宛先範囲に対して(マクロで)形式を明示的に宣言することです。

VBA内で日付認識を無効にする方法もあると思いますが、正確なコードを思い出せません。手動でインポートまたは更新を実行しながらマクロを記録してみてください。表示された内容を使用できるはずです。

編集:テストを実行したばかりで、接続文字列と宛先の後に次を追加します。

.WebDisableDateRecognition = True

コピー/貼り付けではなく、外部ソースからデータをプルしている場合は、これで間違いなくうまくいくはずです。

于 2012-08-07T20:22:11.000 に答える
0

これが役立つ場合に備えて、ExcelがWebページから取得した情報をDATE形式に自動フォーマットし、インポートウィンドウで[オプション]をクリックして[自動日付フォーマット]オプションのチェックを外すと、データが完全にインポートされるという問題が発生しました。 !!

于 2013-03-03T11:18:47.023 に答える