
毎月、パイプで区切られた毎日のファイルを月間 Excel ワークブックにコンパイルする権限があります。インポート ウィザードを使用して、テキスト ファイルをワークブックのワークシートに変換します。一度に 30 ファイルすべてを開き、各ファイルについてウィザードのプロンプトを実行します。ウィザードは、ファイルがパイプで区切られていることを通常正しく検出します。ただし、ファイルのバッチごとに 1 回だけ、ファイルの種類を「区切り」から「固定幅」に変更します。各ファイルは、日付、部門、アカウント、タイプ、金額など同じ形式です。各フィールドには、すべてのファイルで同様のデータが含まれています。日付はすべて 8 文字、部門はすべて 5 文字、アカウントはすべて 6 文字などです。
Excel がファイルの区切り形式を突然認識しなくなったのはなぜですか?
1 つのファイルだけが認識されるのはなぜですか?
私が注意を払っているか確認しているのでしょうか?
これはExcel 2013とExcel 365 Pro(MSO 16.0)の両方で発生します。
答え1
VBA を理解している場合は、次のマクロを使用できます。このマクロはファイル名を要求し、パイプ区切りとして強制的にインポートします。
Sub Test()
Dim Filter As String, Title As String
Dim FilterIndex As Integer
Dim FileName As Variant
' File filters
Filter = "Text Files (*.dat),*.dat," & "All Files (*.*),*.*"
' Default Filter to *.*
FilterIndex = 3
' Set Dialog Caption
Title = "Select a File to Open"
' Select Start Drive & Path
ChDrive ("G:")
ChDir ("G:\Scot\MS Excel")
With Application
' Set File Name to selected File
FileName = .GetOpenFilename(Filter, FilterIndex, Title)
' Reset Start Drive/Path
ChDrive (Left(.DefaultFilePath, 1))
ChDir (.DefaultFilePath)
End With
' Exit on Cancel
If FileName = False Then
MsgBox "No file was selected."
Exit Sub
End If
' Import File
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FileName, Destination:=Range("A1"))
.TextFileParseType = xlDelimited
.TextFileOtherDelimiter = "|"
.Refresh BackgroundQuery:=False
End With
End Sub
「開始ドライブとパスの選択」の下のコードに独自の値を入力します。