サーバー更新からエクスポートされたパイプ区切りファイルがあります。レコード数は約 1 億 3,400 万件です。他のプログラム (SAS など) にデータを読み込む前に、Excel を使用して少数のレコード (1,000 ~ 10,000) をインポートし、データを調べて問題を探します。
ファイルのレコード 6200 付近に問題がありますが、Excel は最初の 3,200 レコードしか読み取れないため、ファイルを読み取ることができません。ファイルには複数のファイル終了マークがあることがわかりました (ファイルは Linux からのもので、Windows はファイル終了を示す 16 進コード 1A を検出します)。この問題を回避する方法をご存知の方はいらっしゃいますか。現在のコードは次のとおりです。
Sub Test()
file = "c:\user\myfile"
Open file For Input As #1
For i = 1 To 10000
Line Input #1, dat
Cells(i, 1) = dat
Next i
Close #1
End Sub
答え1
ファイル内の値を検索して置換してみてください:
Dim CellContent as String
Dim NewCellContent as String
CellContent = 'the line you're bringing in
NewCellContent = (Worksheetfunction.Substitute([your line], chr(26),vbnullstring))
Do Until CellContent = NewCellContent
CellContent = NewCellContent
NewCellContent = Worksheetfunction.Substitute(NewCellContent,chr(26),vbnullstring)
Loop
または、正規表現を使用することもできます。