Excel で既存のデータのインポートが壊れてしまいました。どうすれば以前の状態に戻せますか?

Excel で既存のデータのインポートが壊れてしまいました。どうすれば以前の状態に戻せますか?

私は長年、電気設計用の BOM (部品表) を生成する半自動システムを使用していました。CAD プログラムのスクリプトを使用して、私がずっと前に書いた外部コードを実行し、タブ区切り値 (TSV) ファイルを取得します。このプロセスでは、テンプレート XLS ファイルもコピーされます。このファイルは、TSV ファイルには含められない特定の列の書式を定義します。

Excel でテンプレート XLS ファイルを開き、DATA、FROM TEXT FILE などの操作を行ってファイル名を入力し、Return キーを 5 回押して、一連のデフォルトを取得します。TSV ファイルのデータは、テンプレート ファイルの書式設定でスプレッドシートに表示されます。一部のセルには、直接データではなく、方程式が含まれています。これはすべて意図したとおりに機能します。

この手順は、過去15年間ほどうまく機能していましたが、最近になってマイクロソフトが私のWin10ラップトップのExcelを数週間前にアップデートしたようで、すべてが壊れてしまいました。データ > テキストから > ファイル名完全に異なります。以前のコントロールはすべて失われ、推測も間違っています。何らかの「レガシー」モードを有効にする明確な方法も、詳細を提供する方法も見つかりません。以前とは異なる動作をするだけなので、プロセスが中断されます。

実際に問題を起こしているのは、2 つの非互換性のせいであるようです。

  1. 最初の行の最初のセルに数字が含まれている場合、自動的に独自のタイトル行が追加されるようになりました。セル A1 を、構築するボードの合計数として使用していたため、さまざまな数量がその数字から計算されました。最初の行の残りのセルは、列のタイトルです。最初の列の上部に数字があっても問題ありません。それは私の仕事です。

    独自のタイトル行が追加されると、すべての数式が垂直方向に 1 つずれてしまいます。これはひどいですね。

  2. 数式のインポートが壊れています。最初の文字として「=」を含むセルを取得すると、「=」の前にスペースが追加され、残りの部分が結果として文字列として扱われます。スプレッドシートでスペースを手動で編集すると、意図した数式が得られます。このようなセルは何百もあるため、すべてを手動で修正することはできません。

以前の操作に戻るにはどうすればよいですか? 私は Excel の達人ではありませんし、そうなりたいとも思っていません。BOM の生成を進めたいのです。

実験として、TSV ファイルの数行を手動で CSV ファイルに変換しました。それをインポートすると、同じ問題が発生します。CSV ファイル名を入力するだけで、データが正しく読み込まれた Excel が起動しますが、もちろん、その方法では列の書式設定は認識されません。

どこかの大きな埃の層の下にある TSV ファイルを生成するプログラムを見つけて、必要に応じて変更することは難しくないはずです。たとえば、今すぐに CSV ファイルが必要な場合でも、それで問題ありません。一部のセルのテキスト文字列の特殊文字を回避するために、かなり前に TSV ファイルを作成したと思います。繰り返しますが、これは数週間前まで何年も機能していました。

答え1

これにより、インポートするファイルを選択して開くことができ、新しいワークブックを開いて値のみを貼り付けることができます。ここ

Sub Makro1()

Dim fullpath As String

' Makro1 Makro
' Makro indspillet 13-07-2013 af Eric Bentzen
'

'
'Display a Dialog Box that allows to select a single file.
'The path for the file picked will be stored in fullpath variable
  With Application.FileDialog(msoFileDialogFilePicker)
        'Makes sure the user can select only one file
        .AllowMultiSelect = False
        'Filter to just the following types of files to narrow down selection options
        .Filters.Add "Text Files", "*.TSV; *.TXT; *.CSV , 1"
        'Show the dialog box
        .Show
        
        'Store in fullpath variable
        fullpath = .SelectedItems.Item(1)
        
    End With
    
On Error GoTo EndSub

Workbooks.OpenText Filename:=fullpath, _
   Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, _
   TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
   Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
   Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
   Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
   Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), _
   Array(11, 1), Array(12, 1), Array(13, 1)), _
   TrailingMinusNumbers:=True
   
EndSub:

End Sub

13 行しか実行できないように見えますが、必要に応じて変更することができます。

関連情報