このフォーラムの助けを借りて、ほとんどの問題を解決できましたが、これで行き詰まりました。
ファイル内に非表示のコンマ区切りcsv
ファイル ("xxxx","zzz",) があります。スクリプトを使用してこれらの両方の文字を置き換えると、レコードの終わりが失われる ため、1 つのレコードとしてのみインポートされます。chr(10)
chr(13)
chr(10)
メモ帳では、ファイルは完全に表示されます-1行に1レコード。Excelファイルとして開く場合は問題ありません.csv区切りファイルとしてインポートする場合のみです
他の貢献者のおかげで、以下は私が使ってきたものです。
理想的には、私がやりたいことは次のとおりです。
- csvファイルを選択
- 元の <<< 追加機能を保持するためにファイルをコピーします
- インポートに影響するすべての隠し文字をクリーンアップします
- 次にインポート
-
Private Sub CSV_ImportRepl()
Dim strFile As String
Dim strBuffer As String
Dim ff As Integer
Dim strFileName As String
Dim ws As Worksheet
'ENTRIES CSV FILE ----------------------------------
' ---open file ----------
strFile = Application.GetOpenFilename("Text Files (*.csv),*.*", _
, "SELECT ENTRIES csv FILE")
strFileName = strFile
MsgBox strFileName
' ---start cleaning file ----------
strBuffer = Space(FileLen(strFile))
ff = FreeFile
Open strFile For Binary Access Read As #ff
Get #ff, , strBuffer
Close #ff
strBuffer = Replace(strBuffer, Chr(13), "")
Kill strFile
Open strFile For Binary Access Write As #ff
Put #ff, , strBuffer
Close #ff
' --- clear contents & import ----------
Sheets("Entries").Cells.ClearContents
Set ws = ActiveWorkbook.Sheets("Entries") 'set to current worksheet name
strFile = strFileName
With ws.QueryTables.Add(Connection:="TEXT;" & strFile, _
Destination:=ws.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.Refresh
End With
End Sub
どんな助けでも大歓迎です。