20

以下のコードでセミコロン区切りのtxtファイルを開くと、その列のテキストのフォーマットに関係なく、Excelに保存した後、長いアカウント番号が科学表記法として表示されました。

ここで何が間違っていましたか?

    Application.ScreenUpdating = False
    Workbooks.OpenText fileName:=Filetxt, Origin:=xlWindows, StartRow _
    :=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
    ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, _
    Space:=False, Other:=False, Local:=True, _
    FieldInfo:=Array(Array(1, 4), Array(2, xlTextFormat)
    'Save text file as csv file
    Set wb = ActiveWorkbook
    Application.DisplayAlerts = False
    wb.SaveAs fileName:=fileXls, FileFormat:=6, _
    ReadOnlyRecommended:=False, _
    CreateBackup:=False
    Application.DisplayAlerts = True
    wb.Close savechanges:=True

txt ファイルの記録は次のようになります: 2011-12-21;100,00;"21375000120000010020601764"

新しく保存したファイルを開くと、その番号の代わりに 2.117500012E+25 が表示されます。ここで何が問題なのですか?

4

8 に答える 8

36

製品を Excel ファイルにインポートすると、バーコードが科学的表記法 (例: 5.4265E+12) として表示されます。

これは、詳細をアップロードするためにファイルを csv ファイルに変換したときに、csv がバーコードを適切に読み取らず、バーコードを 52862300000 などに変更したことを意味します。

それに対抗するには:

  • Excel シートとして開きます (または、1 つとして開けない場合は変換します)。
  • (バーコード/科学表記) 列を強調表示します。
  • データ/テキストから列に移動します
  • ページ 1: 「区切り」をチェック / 次へ
  • ページ 2: [タブ] をオンにして、[テキスト修飾子] を " / 次へ
  • ページ 3: 「一般」ではなく「テキスト」にチェックを入れる
  • 終了

これにより、すべてが長い数値として表示されるように変換されます。その後、それを CSV ファイルとして保存できます。数値は科学数値に変換/フォーマットされません。

お役に立てれば!!

于 2013-04-18T18:24:06.093 に答える
3

Excel では、数値の精度は 15 桁に制限されています。あなたの例の数値は、Excel が正確に表すには大きすぎます。これは、科学的表記法への変換を説明している可能性があります。

その列を数値ではなくテキストとして Excel にインポートする必要があります。そうすれば、精度が失われることはありません。

編集:マクロの記録中に「テキストから開く」プロセスを実行すると、次のようになります。

Workbooks.OpenText Filename:= Filetxt, Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 5), Array(2, 1), _
        Array(3, 2)), TrailingMinusNumbers:=True

そのプロセスには、各列のデータの種類を選択できるステップがあります。

あなたの「FieldInfo」パラメーターは少しずれていると思います.3つの列が必要ですが、col2にテキストとしてタグを付けました...

于 2012-12-05T21:24:53.787 に答える
2

数字の前にアポストロフィを挿入します。これにより、Excel に整数が表示されます。

于 2020-06-18T22:24:13.830 に答える