1

このフォーラムの助けを借りて、ほとんどの問題を解決できましたが、これで行き詰まりました。

ファイル内に非表示のコンマ区切りcsvファイル ("xxxx","zzz",) があります。スクリプトを使用してこれらの両方の文字を置き換えると、レコードの終わりが失われる ため、1 つのレコードとしてのみインポートされます。chr(10)chr(13)chr(10)

メモ帳では、ファイルは完全に表示されます-1行に1レコード。Excelファイルとして開く場合は問題ありません.csv区切りファイルとしてインポートする場合のみです

他の貢献者のおかげで、以下は私が使ってきたものです。

理想的には、私がやりたいことは次のとおりです。

  1. csvファイルを選択
  2. 元の <<< 追加機能を保持するためにファイルをコピーします
  3. インポートに影響するすべての隠し文字をクリーンアップします
  4. 次にインポート

-

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

どんな助けでも大歓迎です。

4

1 に答える 1

1
Sub opencsv()

    strFile = Application.GetOpenFilename("Text Files (*.csv),*.*", , "Please selec text file...")
    strFileName = strFile

    Set src = Workbooks.Open(Filename:=strFile, Local:=True)
    Cells.Copy
    ThisWorkbook.Activate
    Sheets("Entries").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    src.Close

End Sub
于 2013-09-22T12:59:24.073 に答える