Note: The other languages of the website are Google-translated. Back to English

Excelで複数のcsv / text / xmlファイルをすばやくバッチインポートするにはどうすればよいですか?

Excelでは、ワークブックをcsvファイル、テキストファイル、またはxmlファイルとして保存する必要がありますが、複数のcsv / text / xmlファイルをフォルダーからワークブックまたはワークシートにインポートしようとしたことがありますか? この記事では、それらをすばやくバッチインポートするためのいくつかの方法を紹介します。

フォルダからVBAを使用してブックの各ワークシートに複数のテキストファイルをインポートします

VBAを使用して、フォルダーからXNUMXつのシートに複数のcsvファイルをインポートします

VBAを使用して、フォルダーからXNUMXつのシートに複数のxmlファイルをインポートします

複数のxml / csvファイルをKutoolsforExcelでシートまたはワークブックにインポートまたは結合します 良いアイデア3

各シートをcsv / text / pdfとしてKutoolsforExcelのフォルダーにエクスポートします良いアイデア3


フォルダーからワークブックにテキストファイルをインポートするには、以下のVBAを使用してすばやく処理できます。

1.空白のブックを有効にして、を押します Altキー+ F11 開くキー アプリケーション向け Microsoft Visual Basic 窓。

2。 クリック インセット > モジュール、VBAをに貼り付けます モジュール 窓。

VBA:すべてのテキストファイルをフォルダーからブックにインポートします

Sub LoadPipeDelimitedFiles()
'UpdatebyKutoolsforExcel20151214
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\*.txt")
    Do While xFile <> ""
        xCount = xCount + 1
        Sheets(xCount).Select
        With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
          & xStrPath & "\" & xFile, Destination:=Range("A1"))
            .Name = "a" & xCount
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 437
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileOtherDelimiter = "|"
            .TextFileColumnDataTypes = Array(1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
            xFile = Dir
        End With
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files txt", , "Kutools for Excel"
End Sub

3。 押す F5 キーまたは ラン ボタンをクリックしてVBAを実行し、ポップダイアログでテキストファイルをインポートするフォルダーを選択します。 スクリーンショットを参照してください:

docインポート複数のcsvテキストxml1

4.そしてクリックします OK、および選択したフォルダ内の各テキストファイルは、アクティブなブックのXNUMXつのワークシートにインポートされています。 スクリーンショットを参照してください:

docインポート複数のcsvテキストxml2docインポート複数のcsvテキストxml3

複数のシート/ワークブックをXNUMXつのシートまたはワークブックに簡単に組み合わせる

複数のシートまたはワークブックをXNUMXつのシートまたはワークブックに結合することは、Excelでは面倒かもしれませんが、 組み合わせる Kutools for Excelの機能を使用すると、数十のシート/ワークブックをXNUMXつのシートまたはワークブックに結合できます。また、数回クリックするだけでシートをXNUMXつに統合できます。  フル機能を表示するにはクリックしてください 30 日間無料トライアル!
シートを組み合わせる
 
Kutools for Excel: 300 以上の便利な Excel アドインがあり、制限なしで無料で試すことができます 30 日。

すべてのcsvファイルをフォルダーからXNUMXつのシートにインポートするには、以下のVBAコードを使用できます。

1.空白のワークシートを有効にして、を押します Altキー+ F11 開くキー アプリケーション向け Microsoft Visual Basic 窓。

2。 クリック インセット > モジュール、VBAの下を新しいものに貼り付けます モジュール 窓。

VBA:csvファイルをフォルダーからXNUMXつのワークシートにインポートします

Sub ImportCSVsWithReference()
'UpdatebyKutoolsforExcel20151214
    Dim xSht  As Worksheet
    Dim xWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Set xSht = ThisWorkbook.ActiveSheet
    If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then xSht.UsedRange.Clear
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\" & "*.csv")
    Do While xFile <> ""
        Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
        Columns(1).Insert xlShiftToRight
        Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
        ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
        xWb.Close False
        xFile = Dir
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files csv", , "Kutools for Excel"
End Sub

3。 押す F5 キーまたはクリック ラン ボタンをクリックしてVBAを実行すると、ダイアログが表示され、すべてのcsvファイルをインポートするフォルダーを選択します。 スクリーンショットを参照してください:

docインポート複数のcsvテキストxml4

4。 クリック OK、インポートする前にアクティブなワークシートの内容をクリアするかどうかを通知するダイアログが表示されます。ここでクリックします あり。 スクリーンショットを参照してください:

docインポート複数のcsvテキストxml5

クリックした後 あり、選択したフォルダ内のすべてのcsvファイルが現在のシートにインポートされ、列Aから右にデータが配置されます。 スクリーンショットを参照してください:

docインポート複数のcsvテキストxml6docインポート複数のcsvテキストxml7

ヒント: ワークシートにcsvファイルを水平に配置する場合は、以下のVBAを使用できます。

Sub ImportCSVsWithReferenceI()
'UpdatebyKutoolsforExcel20151214
    Dim xSht  As Worksheet
    Dim xWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Set xSht = ThisWorkbook.ActiveSheet
    If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then
        xSht.UsedRange.Clear
        xCount = 1
    Else
        xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
    End If
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\" & "*.csv")
    Do While xFile <> ""
        Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
        Rows(1).Insert xlShiftDown
        Range("A1") = ActiveSheet.Name
        ActiveSheet.UsedRange.Copy xSht.Cells(1, xCount)
        xWb.Close False
        xFile = Dir
        xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files csv", , "Kutools for Excel"
End Sub 

docインポート複数のcsvテキストxml8


すべてのXMLファイルをフォルダーからXNUMXつのシートにインポートする場合は、以下のVBAコードを使用できます。

1.インポートしたデータを配置する空白のシートを選択し、を押します Altキー+ F11 有効にするキー アプリケーション向け Microsoft Visual Basic 窓。

2。 クリック インセット > モジュール、VBAコードをに貼り付けます モジュール 窓。

VBA:XMLファイルをフォルダーからワークシートにインポートします。

Sub From_XML_To_XL()
'UpdatebyKutoolsforExcel20151214
    Dim xWb As Workbook
    Dim xSWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Application.ScreenUpdating = False
    Set xSWb = ThisWorkbook
    xCount = 1
    xFile = Dir(xStrPath & "\*.xml")
    Do While xFile <> ""
        Set xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)
        xWb.Sheets(1).UsedRange.Copy xSWb.Sheets(1).Cells(xCount, 1)
        xWb.Close False
        xCount = xSWb.Sheets(1).UsedRange.Rows.Count + 2
        xFile = Dir()
    Loop
    Application.ScreenUpdating = True
    xSWb.Save
    Exit Sub
ErrHandler:
    MsgBox "no files xml", , "Kutools for Excel"
End Sub

3。 クリック ラン ボタンまたは F5 キーを押してVBAを実行し、ポップダイアログでフォルダを選択します。スクリーンショットを参照してください。

docインポート複数のcsvテキストxml9

4。 クリック OK、および選択したフォルダ内のすべてのXMLファイルがアクティブシートにインポートされます。


VBAに慣れていない場合は、心配しないでください。ここでは、便利なツールを紹介します– Kutools for Excel あなたのために。 その強力な 組み合わせる ユーティリティを使用すると、複数のxmlファイルまたはcsvファイルをXNUMXつのワークブックまたはXNUMXつのExcelシートにすばやく組み合わせることができます。

Kutools for Excel, 以上で 300 便利な機能は、あなたの仕事をより簡単にします。 

インストールした後 Kutools for Excel、以下のようにしてください:(今すぐExcel用のKutoolsを無料でダウンロードしてください!)

1.アクティブなExcelをクリックし、 クツールズプラス > 組み合わせる。 スクリーンショットを参照してください:
ドキュメント結合1

2.そしてで 結合のステップ1 ダイアログで、必要に応じてXNUMXつの分離オプションを選択します。 スクリーンショットを参照してください:
ドキュメント結合2

3。 クリック 次へ に移動します 結合のステップ2、クリック 追加 さまざまなフォルダのファイルまたはXNUMXつのフォルダのファイルを ワークブック リスト、および結合するシートを指定することもできます ワークシート 右セクションのリスト。 スクリーンショットを参照してください:
dockutoolsコンバインシート3

4。 クリック 次へ の最後の一歩まで 組み合わせる、および結合オプションを指定できます。
dockutoolsコンバインシート4

5。 クリック 終了、ダイアログがポップアップ表示され、新しい結合結果を保存する場所を選択するように通知されます。 スクリーンショットを参照してください:
ドキュメント結合5

6。 クリック セールで節約。 追加するすべてのシートは、新しい単一のシートに結合されました。
ドキュメント結合6

ヒント: 組み合わせる、複数を組み合わせることもできます CSVファイル 複数のフォルダまたはXNUMXつのフォルダをXNUMXつのシートまたはワークブックに形成します。


各シートをcsv / text / pdfファイルとしてフォルダにエクスポートする場合は、 Kutools for Excelさん 分割ワークブック ユーティリティはあなたに有利に働くことができます。

後の 無料インストール Kutools for Excel、以下のようにしてください:

1.ワークシートをエクスポートするブックを有効にして、[ クツールズプラス > ワークブック > 分割ワークブック。 スクリーンショットを参照してください:

docインポート複数のcsvテキストxml10

2。 の中に 分割ワークブック ダイアログでは、エクスポートする必要のあるシート名を確認できます。デフォルトでは、すべてのシートがチェックされ、チェックされます。 保存形式を指定します 下のドロップダウンリストから、保存するファイル形式を選択します。 スクリーンショットを参照してください:

docインポート複数のcsvテキストxml11

3。 クリック スプリット 分割ファイルを保存するフォルダを選択します フォルダを参照する ダイアログ、スクリーンショットを参照してください:

docインポート複数のcsvテキストxml12

4。 クリック OK、これで、チェックしたすべてのシートが、選択したフォルダに新しいファイル形式でエクスポートされます。


関連記事:


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (36)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、これらのコードサンプルをありがとうございました! 最初のもの(VBA:すべてのテキストファイルをフォルダーからブックにインポートする)は、ほぼ正確に私が必要としているものです。 ただし、インポートするファイルを選択し、特定のフォルダー内のすべてのテキストファイルを自動的にインポートしないようにします。 また、ターゲットシートの既存の内容をテキストファイルの内容で上書きしてほしい。 (上記のコードでは、既存のコンテンツが置き換えられるのではなく、右にシフトされます。)どうすればよいですか? 前もって感謝します!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは。「フォルダからVBAを使用して1つのシートに複数のXMLファイルをインポートする」のVBAコードについて理解したいと思います。 2.なぜ1つではなく2つのワークブックが必要なのですか? XNUMX.多くのxmlファイルをExcelにロードするのに時間がかかるので、より効率的なコードはありますか? コードが実行されたときに気付いたので、多くのVBAワークブックが作成され、速度が低下しました。 私の理解を助けていただければ幸いです。
このコメントは、サイトのモデレーターによって最小化されました
申し訳ありませんが、最初のXNUMXつの質問については理解できませんでした。XNUMX番目の質問については、より効率的なコードですが、見つかりませんでした。ご存知の場合は、メモを残してください。ありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは。「複数の.txtファイルをフォルダからVBAを使用してXNUMXつのシートにインポートする」のVBAコードについて、次に使用可能な行(水平ではない)で理解したいと思います。 助けてください、緊急
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、すべてのtxtファイルをXNUMXつのフォルダーからXNUMXつのシートにインポートする場合は、上記のvbaコードを使用して、最初にtxtファイルをワークブックにインポートしてから、KutoolsforExcelの[ワークシートの結合]機能を適用してワークブックのすべてのシートを結合します。 XNUMX枚のシート、次にXNUMX枚のシートのtxtファイル。 それがあなたを助けることを願っています。
このコメントは、サイトのモデレーターによって最小化されました
これに伴う問題は、VBAコマンドもKutoolsも文字コード形式でcsvファイルをインポートできないことです。 プリロードは西部です。 すべてのcsvファイルをunicode-8としてインポートする必要があります
このコメントは、サイトのモデレーターによって最小化されました
txtファイルから変換するためのコードは私には機能しませんでした。
このコメントは、サイトのモデレーターによって最小化されました
申し訳ありませんが、この記事は機能しません。 問題について説明していただけますか? コードの実行中に何が起こりますか? そして、あなたはどのシステムを使っていますか?
このコメントは、サイトのモデレーターによって最小化されました
やあ! 「フォルダからXNUMXつのワークシートにcsvファイルをインポートする」というコードは私のために機能します! ただし、このコードは空の.txtファイルでは機能しません。 空のファイルも保持する方法はありますか?
このコメントは、サイトのモデレーターによって最小化されました
申し訳ありませんが、なぜ空のtxt.fileをインポートする必要があるのか​​わかりません〜内容を区切るために空白行を挿入するだけです。
このコメントは、サイトのモデレーターによって最小化されました
マイク:「txtファイルから変換するためのコードは私には機能しませんでした。」

同じ問題が発生しました。ブック内のワークシートよりも多くのtxtファイルを開くと、マクロでエラーが発生します(デフォルトは3)。
ループが終了する直前に以下を追加して修正し、マクロが残りの後に新しいシートを作成するようにしました
ActiveWorkbook.Sheets.Add After:= Worksheets(Worksheets.Count)
このコメントは、サイトのモデレーターによって最小化されました
チャド、これは私が複数のテキストファイルをインポートするのに完璧に機能しました。 ありがとうございました。

ファイル名を取得する方法があるかどうか知っていますか? テキストファイル名を各Excelシートタブにコピーしたい。
このコメントは、サイトのモデレーターによって最小化されました
すごい! XNUMXつのワークシートですべてのcsvファイルを開いてみましたが、うまく機能しました。 本当にありがとう!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、.xmlのコードを実行しようとしましたが、「no filesxml」というメッセージが表示されたため、機能していないようです。 これをどのように修正しますか?
このコメントは、サイトのモデレーターによって最小化されました
選択したフォルダにxmlファイルが含まれていない場合は、「nofilesxml」というメッセージが表示されます。 アクティブなシートにインポートするためのコードを実行した後、ポップダイアログでxmlファイルを含む適切なフォルダーを選択できます。
このコメントは、サイトのモデレーターによって最小化されました
出来た! ありがとう
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、saya mau tanya kalo impor txt file ke satu sheet gimana ya?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、レンディ、すべてのtxtをXNUMXつのシートにインポートしますか、それとも各txtを各シートにインポートしますか?
このコメントは、サイトのモデレーターによって最小化されました
txtをシートにインポートするコードがあります。各txtを各シートにインポートしますが、すべてのtxtをその名前でシートにインポートします。つまり、インポートしたすべてのシートの名前を、コードファイルに添付されているtxtの名前に変更します。これを編集します。 txts名のシートの名前を変更するためのコードを追加するファイル...ありがとう。
このコメントは、サイトのモデレーターによって最小化されました
txtをシートにインポートするコードがあります。各txtを各シートにインポートしますが、すべてのtxtをその名前でシートにインポートする必要があります。つまり、インポートしたすべてのシートの名前を、コードファイルに添付されているtxtの名前に変更します。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、Ramy、zahran、テキストファイルをインポートしてシート名をテキストファイル名に変更できる以下のコードを試すことができます。
Sub LoadPipeDelimitedFiles()
'UpdatebyExtendoffice20180925
文字列としての薄暗いxStrPath
xFileDialog を FileDialog として薄暗くする
文字列としての薄暗いxFile
Dim xCount As Long
ワークシートとしての薄暗いxWS

エラー時GoToErrHandler
xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)を設定します
xFileDialog.AllowMultiSelect = False
xFileDialog.title="フォルダを選択[KutoolsforExcel]"
xFileDialog.Show=-1の場合
xStrPath = xFileDialog.SelectedItems(1)
終了する場合
xStrPath = ""の場合、Subを終了します
Application.ScreenUpdating = False
xFile = Dir(xStrPath& "\ *。txt")
xFile <> ""
xCount = xCount + 1
xWS = Sheets(xCount)を設定します
xWS.Select
xWS.Name = "TEXT"&Left(xFile、Len(xFile)-4)
ActiveSheet.QueryTables.Add(Connection:="TEXT;"_を使用
&xStrPath& "\"&xFile、Destination:= Range( "A1"))
.Name = "a"&xCount
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1、1、1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:= False
xFile = Dir
最後に
ループ
Application.ScreenUpdating = True
サブを終了
ErrHandler:
MsgBox "no files txt" 、、 "Kutools for Excel"
End Subの
このコメントは、サイトのモデレーターによって最小化されました
やあ! コードを使用して複数のXMLファイルを5つにマージしましたが、残念ながら列が混乱していました。 マージされるXNUMXつのファイルはすべて同じ形式でした。 これを修正する方法はありますか? また、ファイルがマージされるときに重複するヘッダーを取り除く方法があるかどうか疑問に思いました。 ありがとうございました!
このコメントは、サイトのモデレーターによって最小化されました
ありがとうございました。 このサイトは大きな助けになっています。 理解できない問題がXNUMXつあります。 複数のcsvファイルをExcelの個別のシートにインポートし、各シートの名前をcsvファイルのファイル名に変更しようとしています。 私はこれがtxtファイルについて以下でカバーされていることを知っていますが、私はcsvファイルで作業しています。 前もって感謝します。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは-私はすべてのcsvファイルを上記のXNUMXつのファイルにインポートしています「フォルダからVBAを使用してXNUMXつのシートに複数のCsvファイルをインポートする」を使用しています-手動で選択することなく、データを収集するフォルダを定義したいと思いますそれ。 これはできますか? ありがとう-SW。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、スコットW、VBAコードが役立つかもしれないことがわかりました。
Option Explicit

サブImportCSVsWithReference()
'著者:ジェリーボーケア
'日付:10/16/2010
'概要:すべてのCSVファイルをフォルダーからXNUMXつのシートにインポートします
'CSVファイル名を一覧表示するA列にフィールドを追加する

ワークブックとしての薄暗いwbCSV
ワークシートとしてwsMstrを暗くする:wsMstr = ThisWorkbook.Sheets( "Sheet1")を設定します
Dim fPath As String:fPath = "C:\ Users \ DT168 \ Desktop \ New folder\"'CSVファイルへのパス。最後の\を含めます。
文字列としてfCSVを暗くする

MsgBox( "インポートする前に既存のシートをクリアしますか?"、vbYesNo、 "クリアしますか?")_
= vbYes 次に wsMstr.UsedRange.Clear

Application.ScreenUpdating =False'マクロを高速化

fCSV = Dir(fPath& "* .csv")'CSVファイルリストを開始します

Len(fCSV)>0の間に実行
'CSVファイルを開きます
wbCSV = Workbooks.Open(fPath&fCSV)を設定します
'列Aを挿入し、CSV名を追加します
Columns(1).xlShiftToRightを挿入します
Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
'日付をマスターシートにコピーし、ソースファイルを閉じます
ActiveSheet.UsedRange.Copy wsMstr.Range( "A"&Rows.Count).End(xlUp).Offset(1)
wbCSV.Close False
'次のCSVの準備ができました
fCSV=方向
ループ

Application.ScreenUpdating = True
End Subの
このコメントは、サイトのモデレーターによって最小化されました
重複するヘッダーとCSVファイル名の列を削除する方法。 助けてください....私はいくつかの記事を読みましたが、残念ながらすべて同じ結果になります。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは-私はあなたのVBAコードを使用して複数のCSVファイルからデータを抽出してExcelファイル(このページのコード)に変換し、csvファイルをExcelファイルに変換しました(これは: https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html)、素晴らしい結果が得られました。 彼らは私が多くの時間を節約するのを助けました。

ただし、これらのタイプのコードの両方に共通の問題があることに気付きました。 明確にするために、私のシステムは日付にヨーロッパ規格を使用するように設定されていますが、私の仕事のために受け取ったCSVファイルの一部には米国規格の日付が含まれています。 最初の問題は、米国形式の日付を含むCSVファイルからデータを抽出または変換すると、それらの日付がすべて逆になることです(私のシステムで使用されているEU標準と一致します)。 これは素晴らしいことですが、コードによって日付が逆になることを知らなかったため、問題も発生しました。そこで、先に進んで同じことをやり直しました。 04番目の問題は、私のシステム(EU標準)で使用されているものとすでに同じ形式の日付を含むCSVファイルの場合、あいまいな日付のみが逆になります(つまり、05年2019月05日から04年2019月30日)。あまりにも明白なものは変更されませんが(つまり、04年2019月XNUMX日)。

コードに実行させたいのは、ここに示されているものとまったく同じですが、元のファイルで使用されているのとまったく同じ形式でデータ(特に日付)をコピーして貼り付ける必要があるという点だけです。 これは、起こりうる混乱や間違いを防ぐのに役立ちます。 いつか自分のコードを書けるようにVBAを学びたいのですが、今のところ、既存のコードの一部を自分のニーズに合わせて変更することすらできません。 それで、あなたが助けることができるならば、私が(あなたが思いついた)修正されたコードを既存のコードのどこに置くべきか教えてください。 私が得ることができるすべてのフィードバックとサポートに感謝します。 皆さん、ありがとうございました!
このコメントは、サイトのモデレーターによって最小化されました
こんにちはマーシャル、Workbooks.Openメソッドで、オプションLocal:=Trueを追加します。

すなわち
xWb = Workbooks.Open(xStrPath& "\"&xFile、Local:= True)を設定します
このコメントは、サイトのモデレーターによって最小化されました
ロバート、どうもありがとうございました。 申し訳ありませんが、これまでに返信できませんでした。 今まで通知がありませんでした。 これを試してみて、後で戻ってきて、これが機能するかどうかをお知らせします。
このコメントは、サイトのモデレーターによって最小化されました
ハイ・ロバート、
また私です。 「Local:True」部分をコードのどの部分に追加する必要があるかを実際に理解するのに時間がかかりました。 日付が逆にならなくなったので、結果は素晴らしいものになりました。 ありがとうございました!
同じ問題を抱えている人は、次の行を変更してください。
xWb = Workbooks.OpenXML(xStrPath& "\"&xFile)を設定します

これに:
xWb = Workbooks.Open(xStrPath& "\"&xFile、Local:= True)を設定します
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、区切り文字としてセミコロンを使用して複数のcsvファイルをインポートする方法はありますか? ありがとうございました!
PS素敵な記事!
このコメントは、サイトのモデレーターによって最小化されました
こんにちはチーム

複数のXMLファイルをVBAを使用して単一のシートにインポートするためのコードを使用していますが、直面している問題は、行数が約650000に達すると、フォルダー内の残りのxmlファイルを処理せず、xmlファイルがないというエラーが発生することです。 。 この数を増やすにはあなたのサポートが必要です。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは専門家

VBAを使用して複数のxmlファイルを1つのワークシートにインポートするために上記のコードを使用していますが、直面している問題は、ワークシートの行数が650000に達すると、このコードがフォルダー内の残りのxmlファイルを処理しないことです。 「nofiles.xml」というエラーが表示されます。 あなたの親切なサポートが必要です
このコメントは、サイトのモデレーターによって最小化されました
Hello複数のxmlをExcelドキュメントのXNUMXつのタブにインポートする手順は機能しますが、列を並べる方法を考えていました。 私のxmlはすべて同じタグを持っているわけではありません。 これらは、xmlに一部のヘッダー(タグ)のデータがない場合、そのxmlからヘッダーが欠落するように設定されています。 各xmlからの同じヘッダーと関連データがExcelの同じ列に収まるようにxmlをインポートする方法はありますか?
ここにはまだコメントが投稿されていません
もっと読む

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護