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

Jak szybko importować wiele plików csv / text / xml w programie Excel?

W programie Excel być może zapisałeś skoroszyt jako plik csv, plik tekstowy lub plik xml, ale czy kiedykolwiek próbowałeś zaimportować wiele plików csv / text / xml z folderu do skoroszytu lub arkusza? W tym artykule przedstawię kilka metod szybkiego ich importowania wsadowego.

Importuj wiele plików tekstowych z folderu do każdego arkusza roboczego skoroszytu z VBA

Importuj wiele plików CSV z folderu do jednego arkusza za pomocą VBA

Zaimportuj wiele plików xml z folderu do jednego arkusza za pomocą VBA

Importuj lub łącz wiele plików xml / csv w arkusz lub skoroszyt za pomocą Kutools for Excel dobry pomysł 3

Eksportuj każdy arkusz jako csv / text / pdf do folderu z Kutools for Exceldobry pomysł 3


Aby zaimportować pliki tekstowe z folderu do skoroszytu, możesz użyć poniższego VBA, aby szybko sobie z tym poradzić.

1. Włącz pusty skoroszyt i naciśnij Alt + F11 klucze do otwarcia Microsoft Visual Basic for Applications okno.

2. kliknij wstawka > Modułi wklej VBA do Moduł okno.

VBA: Importuj wszystkie pliki tekstowe z folderu do skoroszytu

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. naciśnij F5 klucz lub run , aby uruchomić VBA, i wybierz folder, z którego chcesz importować pliki tekstowe w wyświetlanym oknie dialogowym. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 1

4. I kliknij OK, a każdy plik tekstowy w wybranym folderze został zaimportowany do jednego arkusza aktywnego skoroszytu. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 2doc importuj wiele plików CSV text xml 3

Łatwe łączenie wielu arkuszy / skoroszytów w jeden pojedynczy arkusz lub skoroszyt

Łączenie wielu arkuszy lub skoroszytów w jeden arkusz lub skoroszyt może być skomplikowane w programie Excel, ale z rozszerzeniem Połączyć funkcja w Kutools for Excel, możesz łączyć dziesiątki arkuszy / skoroszytów w jeden arkusz lub skoroszyt, a także możesz skonsolidować arkusze w jeden tylko kilkoma kliknięciami.  Kliknij, aby uzyskać pełną funkcjonalność 30 dni bezpłatnego okresu próbnego!
połącz arkusze
 
Kutools dla programu Excel: z ponad 300 przydatnymi dodatkami do programu Excel, które można bezpłatnie wypróbować bez ograniczeń 30 dni.

Aby zaimportować wszystkie pliki csv z folderu do jednego arkusza, możesz użyć poniższego kodu VBA.

1. Włącz pusty arkusz i naciśnij Alt + F11 klucze do otwarcia Microsoft Visual Basic for Applications okno.

2. kliknij wstawka > Modułi wklej poniżej VBA do nowego Moduł okno.

VBA: Importuj pliki csv z folderu do jednego arkusza roboczego

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. naciśnij F5 kliknij lub kliknij run , aby uruchomić VBA, i pojawi się okno dialogowe, w którym wybierzesz folder, z którego chcesz zaimportować wszystkie pliki CSV. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 4

4. kliknij OKi wyskakuje okno dialogowe przypominające o wyczyszczeniu zawartości aktywnego arkusza przed importowaniem, tutaj klikam Tak. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 5

po kliknięciu Tak, wszystkie pliki csv w wybranym folderze są importowane do bieżącego arkusza i umieszczają dane z kolumny A po prawej stronie. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 6doc importuj wiele plików CSV text xml 7

Wskazówka: Jeśli chcesz umieścić pliki csv poziomo w arkuszu, możesz użyć poniższego 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 importuj wiele plików CSV text xml 8


Jeśli chcesz zaimportować wszystkie pliki XML z folderu do jednego arkusza, możesz użyć poniższego kodu VBA.

1. Wybierz pusty arkusz, na którym chcesz umieścić importowane dane i naciśnij Alt + F11 klucze do włączenia Microsoft Visual Basic for Applications okno.

2. kliknij wstawka > Moduł, wklej kod VBA do pliku Moduł okno.

VBA: Importuj pliki XML z folderu do arkusza.

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. kliknij run przycisk lub F5 klucz do uruchomienia VBA i wybierz folder w wyskakującym oknie dialogowym, zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 9

4. kliknij OK, a wszystkie pliki XML w wybranym folderze są importowane do aktywnego arkusza.


Jeśli nie znasz VBA, martw się, tutaj przedstawiam przydatne narzędzie - Kutools dla programu Excel dla Was. Dzięki swojej potężnej mocy Połączyć narzędzie, możesz szybko połączyć wiele plików xml lub plików csv w jeden skoroszyt lub jeden arkusz Excela.

Kutools dla programu Excel, ponad 300 przydatne funkcje, ułatwiają pracę. 

Po zainstalowaniu Kutools dla programu Excel, wykonaj poniższe czynności:(Bezpłatne pobieranie Kutools dla programu Excel teraz!)

1. Aktywny Excel i kliknij Kutools Plus > Połączyć. Zobacz zrzut ekranu :
doc połącz 1

2. A w krok 1 funkcji Połącz wybierz jedną opcję separacji według potrzeb. Zobacz zrzut ekranu:
doc połącz 2

3. kliknij Dalej , aby przejść do krok 2 Kombinacjikliknij Dodaj aby dodać pliki z różnych folderów lub pliki z jednego folderu do skoroszyt listy, a także możesz określić arkusze, z których chcesz połączyć Ćwiczenie lista prawej sekcji. Zobacz zrzut ekranu:
doc kutools łączą arkusze 3

4. kliknij Dalej do ostatniego kroku Połączyći możesz określić opcje łączenia.
doc kutools łączą arkusze 4

5. kliknij koniec, pojawi się okno dialogowe przypominające o wybraniu lokalizacji do zapisania nowego połączonego wyniku. Zobacz zrzut ekranu:
doc połącz 5

6. kliknij Zapisz. Wszystkie dodawane arkusze zostały połączone w nowy pojedynczy arkusz.
doc połącz 6

Wskazówka: Z Połączyć, możesz też łączyć wiele plików Pliki CSV utworzyć wiele folderów lub jeden folder w jeden arkusz lub skoroszyt.


Jeśli chcesz wyeksportować każdy arkusz jako plik csv / text / pdf do folderu, Kutools dla programu Excel'S Podziel skoroszyt narzędzie może wyświadczyć ci przysługę.

Po bezpłatna instalacja Kutools dla programu Excel, wykonaj poniższe czynności:

1. Włącz skoroszyt, z którego chcesz wyeksportować arkusze, i kliknij Kutools Plus > skoroszyt > Podziel skoroszyt. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 10

2. w Podziel skoroszyt możesz sprawdzić nazwy arkuszy, które chcesz wyeksportować, domyślnie wszystkie arkusze są sprawdzane i sprawdzane Określ format zapisu i wybierz format pliku, który chcesz zapisać, z poniższej listy rozwijanej. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 11

3. kliknij Split i wybierz folder, w którym chcesz zapisać podzielone pliki w formacie Przeglądaj w poszukiwaniu folderu okno dialogowe, zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 12

4. kliknij OK, teraz wszystkie zaznaczone arkusze są eksportowane jako nowy format pliku w wybranym folderze.


Względne artykuły:


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (36)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, bardzo dziękuję za te próbki kodu! Pierwszy (VBA: Importuj wszystkie pliki tekstowe z folderu do skoroszytu) jest prawie dokładnie tym, czego potrzebuję. Chciałbym jednak wybrać, które pliki zaimportować, a nie automatycznie importować wszystkie pliki tekstowe w danym folderze. Chciałbym również, aby zawartość wyjściowa moich arkuszy docelowych została nadpisana zawartością plików tekstowych. (W powyższym kodzie istniejąca zawartość jest przesuwana w prawo zamiast zastępowania.) Jak mam to zrobić? Z góry dziękuję!
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, chciałbym zrozumieć kod VBA dla „Importuj wiele plików Xml z folderu do jednego arkusza za pomocą VBA”. 1. Dlaczego potrzebne są 2 skoroszyty zamiast 1? 2. Załadowanie wielu plików xml do programu Excel zajmuje trochę czasu, więc czy istnieje bardziej wydajny kod? Ponieważ zdaję sobie sprawę, kiedy twój kod został uruchomiony, powstało wiele skoroszytów VBA, co spowodowało spowolnienie. Byłbym naprawdę wdzięczny, jeśli mógłbyś mi pomóc zrozumieć!
Ten komentarz został zminimalizowany przez moderatora na stronie
Przepraszam, nie zrozumiałem twojego pierwszego pytania, a co do drugiego, bardziej efektywnego kodu, nie znalazłem go, jeśli wiesz, zostaw wiadomość dla mnie, dzięki.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, chciałbym zrozumieć kod VBA dla "Importowania wielu plików .txt z folderu do jednego arkusza za pomocą VBA" w następnym dostępnym wierszu (nie poziomym). Proszę o pomoc, pilne
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj, jeśli chcesz zaimportować wszystkie pliki txt z jednego folderu do jednego arkusza, możesz użyć powyższego kodu vba, aby najpierw zaimportować pliki txt do skoroszytu, a następnie zastosować funkcję Kutools dla programu Excel Połącz arkusze robocze, aby połączyć wszystkie arkusze skoroszytu z jeden arkusz, a następnie pliki txt w arkuszu. Mam nadzieję, że ci to pomoże.
Ten komentarz został zminimalizowany przez moderatora na stronie
Problem polega na tym, że ani polecenie VBA, ani Kutools pozwalają importować pliki csv z formatowaniem kodu znaków. Wstępne obciążenie jest zachodnie. Muszę zaimportować wszystkie pliki csv jako unicode-8
Ten komentarz został zminimalizowany przez moderatora na stronie
kod do konwersji z plików txt nie działał dla mnie.
Ten komentarz został zminimalizowany przez moderatora na stronie
Przepraszamy, ten artykuł nie działa dla Ciebie. Czy mógłbyś opisać swój problem? Co się dzieje podczas uruchamiania kodu? A na jakim systemie pracujesz?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć! Kod „Importuj pliki csv z folderu do jednego arkusza roboczego” działa dla mnie! Ale ten kod nie działa w przypadku pustego pliku .txt. Czy istnieje sposób na zachowanie również pustych plików?
Ten komentarz został zminimalizowany przez moderatora na stronie
Przepraszam, nie wiem, po co importować pusty plik txt.~Po prostu wstaw puste wiersze, aby oddzielić zawartość.
Ten komentarz został zminimalizowany przez moderatora na stronie
Mike: "kod do konwersji z plików txt nie działał dla mnie."

Miałem ten sam problem. Błędy makr pojawiają się, jeśli masz więcej plików txt do otwarcia niż arkuszy w skoroszycie (domyślnie 3).
Naprawiłem to, dodając następujące tuż przed wyjściem z pętli, aby makro tworzyło nowy arkusz po reszcie
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
Ten komentarz został zminimalizowany przez moderatora na stronie
Chad, To doskonale zadziałało dla mnie, aby zaimportować wiele plików tekstowych. Dziękuję Ci.

Czy wiesz, czy istnieje sposób na pobranie nazw plików? Chcę, aby nazwy plików tekstowych zostały skopiowane do każdej zakładki arkusza programu Excel.
Ten komentarz został zminimalizowany przez moderatora na stronie
Całkowicie niesamowite! Próbowałem otworzyć wszystkie pliki csv w jednym arkuszu i działało pięknie. Bardzo dziękuję, naprawdę!
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam, próbowałem uruchomić kod dla .xml i nie zadziałał, ponieważ otrzymałem komunikat „brak plików xml”. Jak to naprawić?
Ten komentarz został zminimalizowany przez moderatora na stronie
Pojawi się komunikat „brak plików xml”, gdy wybrany folder nie zawiera plików xml. Możesz wybrać odpowiedni folder, który zawiera pliki xml w wyskakującym oknie dialogowym po uruchomieniu kodu importowania ich do aktywnego arkusza.
Ten komentarz został zminimalizowany przez moderatora na stronie
Zadziałało! Dzięki
Ten komentarz został zminimalizowany przez moderatora na stronie
cześć, powiedz mau tanya kalo import pliku txt ke satu arkusz gimana ya?
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj, rendy, czy chcesz zaimportować wszystkie txt do jednego arkusza, czy każdy txt do każdego arkusza?
Ten komentarz został zminimalizowany przez moderatora na stronie
mam kod do importowania txts do arkuszy, każdy txt do każdego arkusza, ale chcę, aby każdy txt był importowany z nazwą do arkusza, mam na myśli zmianę nazwy każdego importowanego arkusza na nazwę txt dołączonego pliku kodu .. chcę to edytować plik do dodania kodu do zmiany nazwy arkuszy o nazwie txts ... dzięki.
Ten komentarz został zminimalizowany przez moderatora na stronie
Mam kod do importowania txts do arkuszy, każdy txt do każdego arkusza, ale chcę, aby każdy txt był importowany z nazwą do arkusza, mam na myśli zmianę nazwy każdego importowanego arkusza na nazwę txt dołączonego pliku z kodem .. dzięki
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj Ramy, zahran, możesz wypróbować poniższy kod, który może zaimportować pliki tekstowe i zmienić nazwę arkusza na nazwę pliku tekstowego.
Sub LoadPipeDelimitedFiles()
„Aktualizuj do”Extendoffice20180925
Dim xStrPath jako ciąg
Dim xFileDialog jako FileDialog
Dim xFile jako ciąg
Dim xCount As Long
Dim xWS jako arkusz roboczy

W przypadku błędu przejdź do obsługi błędów
Ustaw xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = Fałsz
xFileDialog.title = "Wybierz folder [Kutools for Excel]"
Jeśli xFileDialog.Show = -1 Wtedy
xStrPath = xFileDialog.SelectedItems(1)
End If
Jeśli xStrPath = "" Następnie wyjdź z Sub
Application.ScreenUpdating = Fałsz
xFile = Dir(xStrPath & "\*.txt")
Rób, gdy xFile <> ""
xLiczba = xLiczba + 1
Ustaw xWS = Arkusze (xCount)
xWS.Wybierz
xWS.Name = "TEKST " & Left(xFile, Len(xFile) - 4)
Z ActiveSheet.QueryTables.Add(Połączenie:="TEXT;" _
& xStrPath & "\" & xFile, Destination:=Range("A1"))
.Name = "a" i xCount
.FieldNames = Prawda
.Liczby wierszy = Fałsz
.FillAdjacentFormulas = Fałsz
.PreserveFormatting = Prawda
.RefreshOnFileOpen = Fałsz
.RefreshStyle = xlInsertDeleteCells
.Zapisz hasło = Fałsz
.ZapiszDane = Prawda
.AdjustColumnWidth = Prawda
.Okresodświeżania = 0
.TextFilePromptOnRefresh = Fałsz
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = Fałsz
.TextFileTabDelimiter = Fałsz
.TextFileSemicolonDelimiter = Fałsz
.TextFileCommaDelimiter = Fałsz
.TextFileSpaceDelimiter = Fałsz
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array (1, 1, 1)
.TextFileTrailingMinusNumbers = Prawda
.Odśwież zapytanie w tle:=Fałsz
xPlik = Katalog
Kończyć z
Pętla
Application.ScreenUpdating = True
Exit Sub
Obsługa błędów:
MsgBox "brak plików txt", , "Kutools for Excel"
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć! Użyłem kodu do połączenia wielu plików XML w jeden, ale niestety kolumny się pomieszały. Wszystkie 5 połączonych plików miało ten sam format. Czy mimo to jest to naprawić? Zastanawiałem się również, czy istnieje sposób na pozbycie się nagłówków, które są zduplikowane podczas łączenia plików. Dziękuję Ci!
Ten komentarz został zminimalizowany przez moderatora na stronie
Dziękuję Ci. Ta strona była bardzo pomocna. Mam jeden problem, którego nie mogę rozwiązać. Próbuję zaimportować wiele plików csv do oddzielnych arkuszy programu Excel w programie Excel i zmienić nazwę każdego arkusza po nazwie pliku csv. Wiem, że zostało to omówione poniżej dla pliku txt, ale pracuję z plikami csv. Z góry dziękuję.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć - używam importu wszystkich plików csv do jednego pliku wymienionego powyżej "Importuj wiele plików Csv z folderu do jednego arkusza za pomocą VBA" - chciałbym zdefiniować folder, z którego zbiera dane bez konieczności ręcznego wybierania to. Czy można to zrobić? dzięki - SW.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, Scott W, znalazłem kod VBA, który może ci pomóc.
Opcja Jawna

Sub Import CSVsWithReference()
„Autor: Jerry Beaucaire”
„Data: 10”
„Podsumowanie: zaimportuj wszystkie pliki CSV z folderu do jednego arkusza
' dodanie pola w kolumnie A zawierającego nazwy plików CSV

Dim wbCSV jako skoroszyt
Dim wsMstr As Worksheet: Ustaw wsMstr = ThisWorkbook.Sheets("Arkusz1")
Dim fPath As String: fPath = " C:\Users\DT168\Desktop\New folder\" 'ścieżka do plików CSV, zawiera końcowe \
Dim fCSV jako ciąg

If MsgBox("Wyczyścić istniejący arkusz przed importem?", vbYesNo, "Wyczyść?") _
= vbYes Następnie wsMstr.UsedRange.Clear

Application.ScreenUpdating = False „Makro przyspieszenia”

fCSV = Dir(fPath & "*.csv") 'rozpocznij wyświetlanie pliku CSV

Rób póki Len(fCSV) > 0
'otwórz plik CSV
Ustaw wbCSV = Workbooks.Open(fPath & fCSV)
'wstaw kolumnę A i dodaj nazwę CSV'
Kolumny(1).Wstaw xlShiftToRight
Kolumny(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
'skopiuj datę do głównego arkusza i zamknij plik źródłowy
ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1)
wbCSV.Zamknij Fałsz
„gotowy następny CSV
fCSV = Kierunek
Pętla

Application.ScreenUpdating = True
End Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak wyeliminować zduplikowany nagłówek i kolumnę nazwy pliku CSV. Proszę o pomoc....Przejrzałem kilka artykułów, ale niestety wszystkie dają ten sam wynik.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam - użyłem twoich kodów VBA, aby wyodrębnić dane z wielu plików CSV do pliku Excel (kod na tej stronie) i przekonwertować pliki csv na pliki Excel (ten: https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html), z doskonałymi wynikami. Pomogli mi zaoszczędzić dużo czasu.

Zauważam jednak wspólny problem z obydwoma tymi typami kodów. Aby wyjaśnić, mój system jest skonfigurowany tak, aby używać europejskich standardów dat, podczas gdy niektóre pliki CSV, które otrzymałem do mojej pracy, zawierają daty w standardach amerykańskich. Pierwszy problem polega na tym, że kiedy wyodrębniam lub konwertuję dane z pliku CSV, który zawiera daty w formacie US, wszystkie te daty są odwrócone (zgodnie ze standardami UE używanymi przez mój system). To jest świetne, ale też sprawiało mi kłopoty, ponieważ nie wiedziałem, że kody odwrócą daty dla mnie, więc poszedłem dalej i zrobiłem to samo ponownie. Drugi problem polega na tym, że dla plików CSV, które zawierają daty już w takim samym formacie jak ten używany przez mój system (standardy UE), odwrócone są tylko daty niejednoznaczne (tj. 04 - 05), natomiast te, które są zbyt oczywiste, pozostają bez zmian (tj. 2019).

Chciałbym, aby kody robiły dokładnie to samo, co tutaj pokazano, tylko że powinny kopiować i wklejać dane (zwłaszcza daty) w dokładnych formatach używanych w oryginalnych plikach. Pomogłoby to zapobiec ewentualnym nieporozumieniom i błędom. Chciałbym nauczyć się VBA, żebym mógł kiedyś pisać własne kody, ale na razie nie jestem w stanie nawet modyfikować części istniejących kodów do swoich potrzeb. Więc jeśli możesz pomóc, powiedz mi, gdzie powinienem umieścić zmodyfikowane kody (które wymyślisz) do istniejących kodów. Doceniam wszelkie opinie i wsparcie, jakie mogę uzyskać. Dziękuję wam wszystkim!
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Marshall, w metodzie Workbooks.Open dodaj opcję Local:=True.

tj.
Ustaw xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
Ten komentarz został zminimalizowany przez moderatora na stronie
Bardzo dziękuję Robercie. Przepraszam, że nie mogłem ci wcześniej odpowiedzieć. Do tej pory nie otrzymałem żadnego powiadomienia. Wypróbuję to i wrócę do Ciebie później, aby poinformować Cię, czy to działa.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Robert,
To znowu ja. Zajęło mi trochę czasu, aby faktycznie mieć czas, aby dowiedzieć się, do której części kodu należy dodać część „Local:True”. Wynik okazał się świetny, ponieważ daty nie są już odwrócone. Dziękuję Ci!
Dla każdego, kto ma ten sam problem, po prostu zmień tę linię:
Ustaw xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)

Do tego:
Ustaw xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, czy jest jakiś sposób na importowanie wielu plików csv ze średnikiem jako separatorem? Dziękuję Ci!
PS Niezły artykuł!
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć drużyno

Używam kodu do importowania wielu plików XML do jednego arkusza z VBA, jednak problemem, z którym się borykam, jest to, że liczba wierszy osiąga około 650000, wtedy nie przetwarza pozostałych plików xml w folderze i wyświetla błąd, że nie ma plików xml . Potrzebujesz twojego wsparcia, aby zwiększyć tę liczbę.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Eksperci

Używam powyższego kodu do importowania wielu plików xml do 1 arkusza roboczego za pomocą VBA, jednak problem, z którym borykam się, polega na tym, że liczba wierszy osiąga 650000 w arkuszu, to ten kod nie przetwarza pozostałych plików xml w folderze. Daje błąd "no files.xml". Wymagaj życzliwego wsparcia
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj Instrukcje dotyczące importowania wielu plików xml do jednej karty dokumentu programu Excel działają, ale zastanawiałem się, jak sprawić, aby wyrównał kolumny. Moje pliki xml nie mają tych samych tagów. Są one skonfigurowane w taki sposób, że jeśli xml nie zawiera danych dla niektórych nagłówków (tagów), to brakuje nagłówka w tym xml. Czy istnieje sposób na zaimportowanie plików xml, aby te same nagłówki z każdego pliku xml i powiązane dane trafiały do ​​tej samej kolumny programu Excel?
Nie ma tu jeszcze żadnych komentarzy
Pokaż więcej
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL