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

Bir klasörden birden çok metin dosyasını bir çalışma sayfasına nasıl aktarabilirim?

Örnekler için, burada birden fazla metin dosyası içeren bir klasörünüz var, yapmak istediğiniz şey bu metin dosyalarını aşağıdaki ekran görüntüsü gibi tek bir çalışma sayfasına aktarmaktır. Metin dosyalarını tek tek kopyalamak yerine, metin dosyalarını bir klasörden tek bir sayfaya hızlı bir şekilde içe aktarmanın püf noktaları var mı?

VBA ile bir klasörden birden çok metin dosyasını tek bir sayfaya aktarın

Kutools for Excel ile metin dosyasını aktif hücreye aktarın iyi fikir3


İşte bir VBA kodu, tüm metin dosyalarını belirli bir klasörden yeni bir sayfaya aktarmanıza yardımcı olabilir.

1. Metin dosyalarını içe aktarmak istediğiniz bir çalışma kitabını etkinleştirin ve Alt + F11 etkinleştirmek için anahtarlar Uygulamalar için Microsoft Visual Basic pencere.

2. tık Ekle > modül, VBA kodunun altına kopyalayıp yapıştırın. modül pencere.

VBA: Birden çok metin dosyasını bir klasörden bir sayfaya aktarın

Sub Test()
'UpdatebyExtendoffice6/7/2016
    Dim xWb As Workbook
    Dim xToBook As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xFiles As New Collection
    Dim I As Long
    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
    If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
    xFile = Dir(xStrPath & "*.txt")
    If xFile = "" Then
        MsgBox "No files found", vbInformation, "Kutools for Excel"
        Exit Sub
    End If
    Do While xFile <> ""
        xFiles.Add xFile, xFile
        xFile = Dir()
    Loop
    Set xToBook = ThisWorkbook
    If xFiles.Count > 0 Then
        For I = 1 To xFiles.Count
            Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
            xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)
            On Error Resume Next
            ActiveSheet.Name = xWb.Name
            On Error GoTo 0
            xWb.Close False
        Next
    End If
End Sub

3. Basın F5 iletişim kutusunu görüntüleyin ve içe aktarmak istediğiniz metin dosyalarını içeren bir klasör seçin. Ekran görüntüsüne bakın:
doc bir klasörden 1 metin dosyalarını içe aktar

4. tık OK. Daha sonra metin dosyaları ayrı ayrı yeni sayfa olarak aktif çalışma kitabına aktarılmıştır.
doc bir klasörden 2 metin dosyalarını içe aktar


Bir metin dosyasını belirli bir hücreye veya aralığa aktarmak istiyorsanız, Kutools for Excel'S İmlece Dosya Ekle Yarar.

Kutools for Excel, ile daha fazla 300 kullanışlı fonksiyonlar, işlerinizi daha kolay hale getirir. 

Sonra ücretsiz kurulum Kutools for Excel, lütfen aşağıdaki işlemleri yapın:

1. Metin dosyasını içe aktarmak istediğiniz bir hücre seçin ve tıklayın. Kutools Artı > İthalat ihracat > İmlece Dosya Ekle. Ekran görüntüsüne bakın:
doc bir klasörden 3 metin dosyalarını içe aktar

2. Ardından bir iletişim kutusu açılır, Araştır görüntülemek için Bir dosya seçin hücre imleci konumu iletişim kutusuna eklenecek, sonraki seçim Metin Dosyaları açılır listeden ve ardından içe aktarmak istediğiniz metin dosyasını seçin. Ekran görüntüsüne bakın:
doc bir klasörden 4 metin dosyalarını içe aktar

3. tık Açılış > Okve belirtme metin dosyası imleç konumuna eklendi, ekran görüntüsüne bakın:
doc bir klasörden 5 metin dosyalarını içe aktar


En İyi Ofis Üretkenliği Araçları

Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır

  • Yeniden: Hızlıca yerleştirin karmaşık formüller, grafikler ve daha önce kullandığınız her şey; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
  • Süper Formül Çubuğu (birden çok metin ve formül satırını kolayca düzenleyin); Okuma Düzeni (çok sayıda hücreyi kolayca okuyun ve düzenleyin); Filtrelenmiş Aralığa Yapıştır...
  • Hücreleri / Satırları / Sütunları Birleştirme Veri kaybetmeden; Bölünmüş Hücre İçeriği; Yinelenen Satırları / Sütunları Birleştirme... Yinelenen Hücreleri Önleyin; Aralıkları Karşılaştır...
  • Yinelenen veya Benzersiz'i seçin Satırlar; Boş Satırları Seçin (tüm hücreler boştur); Süper Bul ve Bulanık Bul Birçok Çalışma Kitabında; Rastgele Seçim ...
  • Tam kopya Formül referansını değiştirmeden Birden Çok Hücre; Otomatik Referans Oluştur Birden Çok Sayfaya; Madde İşaretleri Ekle, Onay Kutuları ve daha fazlası ...
  • Metni Çıkar, Metin Ekle, Konuma Göre Kaldır, Alanı Kaldır; Sayfalama Alt Toplamları Oluşturma ve Yazdırma; Hücre İçeriği ve Yorumları Arasında Dönüştür...
  • Süper Filtre (filtre şemalarını kaydedin ve diğer sayfalara uygulayın); Gelişmiş Sıralama ay / hafta / gün, sıklık ve daha fazlasına göre; Özel Filtre kalın, italik ...
  • Çalışma Kitaplarını ve Çalışma Sayfalarını Birleştirin; Tabloları anahtar sütunlara göre birleştirin; Verileri Birden Çok Sayfaya Bölme; Toplu dönüştürme xls, xlsx ve PDF...
  • 300'den fazla güçlü özellik. Office / Excel 2007-2021 ve 365'i destekler. Tüm dilleri destekler. Kuruluşunuzda veya kuruluşunuzda kolay devreye alma. Tam özellikler 30 günlük ücretsiz deneme. 60 günlük para iade garantisi.
kte sekmesi 201905

Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir

  • Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
  • Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
  • Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!
ofis tabanı
Yorumları sıralama ölçütü
Yorumlar (46)
4 üzerinden 5 olarak derecelendirildi · 1 derecelendirme
Bu yorum sitedeki moderatör tarafından en aza indirildi
Alt Test ()
'güncellemeExtendoffice6/7/2016
Çalışma kitabı olarak xWb'yi karart
Çalışma Kitabı Olarak xToBook'u Karartın
Dize Olarak xStrPath'i Dim
FileDialog Olarak xFileDialog Dim
Dize Olarak xFile Dim
Dim xFiles Yeni Koleksiyon Olarak
Dim kadar uzun
xFileDialog = Application.FileDialog(msoFileDialogFolderPicker) olarak ayarlayın
xFileDialog.AllowMultiSelect = Yanlış
xFileDialog.Title = "Bir klasör seçin [Kutools for Excel]"
xFileDialog.Show = -1 ise
xStrPath = xFileDialog.SelectedItems(1)
Eğer son
xStrPath = "" ise, Sub'dan Çıkın
Eğer Right(xStrPath, 1) <> "\" O zaman xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
Eğer xFile = "" O zaman
MsgBox "Dosya bulunamadı", vbInformation, "Kutools for Excel"
Exit Sub
Eğer son
xFile Yaparken <> ""
xFiles.xFile, xFile ekleyin
xDosya = Yön()
döngü
xToBook = ThisWorkbook'u ayarla
xFiles.Count > 0 ise
I = 1 için xFiles.Count
xWb = Workbooks.Open(xStrPath & xFiles.Item(I)) olarak ayarlayın
xWb.Worksheets(1).Sonra kopyala:=xToBook.Sheets(xToBook.Sheets.Count)
On Error Resume Next
ActiveSheet.Name = xWb.Name
Hata Dönüsünde 0
xWb.Kapat Yanlış
Sonraki
Eğer son
End Sub

bu kod yardımcı oluyor ama ben istiyorum

sekme, noktalı virgül, boşluk doğru bunun nasıl yapılacağı lütfen bana yardım edin
Bu yorum sitedeki moderatör tarafından en aza indirildi
Metin dosyalarını sayfalara dönüştürdükten sonra boşluğu (sınırlayıcıları) tutmak istiyor musunuz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
bu benim de sorunum, bu kod doğru. ancak metin dosyalarını excel'e dönüştürdükten sonra sınırlayıcıları tutmaz.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Metin dosyasını ve benim için istediğiniz sonucu yükleyebilir misiniz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
bende de aynı sorun var Txt dosyalarının tümü ayrı sayfalardadır ve kod, iki sütun arasındaki boşluğu yok sayar.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, Des ve PB Rama Murty, aşağıdaki kod, metin dosyasını sayfalara aktarırken verileri boşluk veya sekmeye göre sütunlara bölebilir. Bir deneyebilirsin.

Alt ImportTextToExcel()
'güncellemeExtendoffice20180911
Çalışma kitabı olarak xWb'yi karart
Çalışma Kitabı Olarak xToBook'u Karartın
Dize Olarak xStrPath'i Dim
FileDialog Olarak xFileDialog Dim
Dize Olarak xFile Dim
Dim xFiles Yeni Koleksiyon Olarak
Dim kadar uzun
xIntRow Uzun Süre Dim
Dim xFNum, xFArr Uzunluğunda
Dize Olarak Dim xStrValue
Aralık olarak Dim xRg
xArr'ı karart
xFileDialog = Application.FileDialog(msoFileDialogFolderPicker) olarak ayarlayın
xFileDialog.AllowMultiSelect = Yanlış
xFileDialog.Title = "Bir klasör seçin [Kutools for Excel]"
xFileDialog.Show = -1 ise
xStrPath = xFileDialog.SelectedItems(1)
Eğer son
xStrPath = "" ise, Sub'dan Çıkın
Eğer Right(xStrPath, 1) <> "\" O zaman xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
Eğer xFile = "" O zaman
MsgBox "Dosya bulunamadı", vbInformation, "Kutools for Excel"
Exit Sub
Eğer son
xFile Yaparken <> ""
xFiles.xFile, xFile ekleyin
xDosya = Yön()
döngü
xToBook = ThisWorkbook'u ayarla
On Error Resume Next
Application.ScreenUpdating = Yanlış
xFiles.Count > 0 ise

I = 1 için xFiles.Count
xWb = Workbooks.Open(xStrPath & xFiles.Item(I)) olarak ayarlayın
xWb.Worksheets(1).Sonra kopyala:=xToBook.Sheets(xToBook.Sheets.Count)

ActiveSheet.Name = xWb.Name

xWb.Kapat Yanlış
xIntRow = ActiveCell.CurrentRegion.Rows.Count
xFNum için = 1'den xIntRow'a
xRg = ActiveSheet.Range("A" & xFNum) olarak ayarla
xArr = Böl(xRg.Text, " ")
UBound(xArr) > 0 ise
xFArr = 0 için UBound(xArr) için
Eğer xArr(xFArr) <> "" O zaman
xRg.Value = xArr(xFArr)
xRg = xRg.Offset olarak ayarlayın(ColumnOffset:=1)
Eğer son
Sonraki
Eğer son
Sonraki
Sonraki
Eğer son
Application.ScreenUpdating = True
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Verileri virgül temelinde sütunlara bölmek istiyorsanız ne gibi değişiklikler gerekiyor?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Verileri virgüle dayalı sütunlara dönüştürmem gerekirse hangi değişikliklerin yapılması gerekiyor?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunu kullandım ve işe yarıyor ama her sayfa aynı bilgi olduğu için hepsinin bir sayfaya kaydedilmesini istiyorum, bunlar her gün sadece günlük dosyaları.
bu yüzden birleştirmem gerekiyor
klasördeki tüm öğeler bir sayfaya
Alt ImportCSVsWithReference()
'UpdatebyKutoolsforExcel20151214
Çalışma kitabı olarak xWb'yi karart
Çalışma Kitabı Olarak xToBook'u Karartın
Dize Olarak xStrPath'i Dim
FileDialog Olarak xFileDialog Dim
Dize Olarak xFile Dim
Dim xFiles Yeni Koleksiyon Olarak
Dim kadar uzun
xIntRow Uzun Süre Dim
Dim xFNum, xFArr Uzunluğunda
Dize Olarak Dim xStrValue
Aralık olarak Dim xRg
xArr'ı karart
Hatada ErrHandler'a Git
xFileDialog = Application.FileDialog(msoFileDialogFolderPicker) olarak ayarlayın
xFileDialog.AllowMultiSelect = Yanlış
xFileDialog.Title = "Bir klasör seçin [Kutools for Excel]"
xFileDialog.Show = -1 ise
xStrPath = xFileDialog.SelectedItems(1)
Eğer son
xStrPath = "" ise, Sub'dan Çıkın
Eğer Right(xStrPath, 1) <> "\" O zaman xStrPath = xStrPath & "\"
xSht = ThisWorkbook.ActiveSheet olarak ayarlayın
If MsgBox("İçe aktarmadan önce mevcut sayfa silinsin mi?", vbYesNo, "Kutools for Excel") = vbYes Sonra xSht.UsedRange.Clear
Application.ScreenUpdating = Yanlış
xFile = Dir(xStrPath & "\" & "*.log")
xFile Yaparken <> ""
xWb = Workbooks.Open(xStrPath & "\" & xFile) olarak ayarlayın
ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
xWb.Kapat Yanlış
xDosya = Yön
döngü
Application.ScreenUpdating = True
Exit Sub
Hata İşleyicisi:
MsgBox "txt dosyası yok", "Kutools for Excel"
End Sub

ve bu, her sütuna dd yapmak için boşluk kullanan

Alt ImportTextToExcel()
'güncellemeExtendoffice20180911
Çalışma kitabı olarak xWb'yi karart
Çalışma Kitabı Olarak xToBook'u Karartın
Dize Olarak xStrPath'i Dim
FileDialog Olarak xFileDialog Dim
Dize Olarak xFile Dim
Dim xFiles Yeni Koleksiyon Olarak
Dim kadar uzun
xIntRow Uzun Süre Dim
Dim xFNum, xFArr Uzunluğunda
Dize Olarak Dim xStrValue
Aralık olarak Dim xRg
xArr'ı karart
xFileDialog = Application.FileDialog(msoFileDialogFolderPicker) olarak ayarlayın
xFileDialog.AllowMultiSelect = Yanlış
xFileDialog.Title = "Bir klasör seçin [Kutools for Excel]"
xFileDialog.Show = -1 ise
xStrPath = xFileDialog.SelectedItems(1)
Eğer son
xStrPath = "" ise, Sub'dan Çıkın
Eğer Right(xStrPath, 1) <> "\" O zaman xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
Eğer xFile = "" O zaman
MsgBox "Dosya bulunamadı", vbInformation, "Kutools for Excel"
Exit Sub
Eğer son
xFile Yaparken <> ""
xFiles.xFile, xFile ekleyin
xDosya = Yön()
döngü
xToBook = ThisWorkbook'u ayarla
On Error Resume Next
Application.ScreenUpdating = Yanlış
xFiles.Count > 0 ise

I = 1 için xFiles.Count
xWb = Workbooks.Open(xStrPath & xFiles.Item(I)) olarak ayarlayın
xWb.Worksheets(1).Sonra kopyala:=xToBook.Sheets(xToBook.Sheets.Count)

ActiveSheet.Name = xWb.Name

xWb.Kapat Yanlış
xIntRow = ActiveCell.CurrentRegion.Rows.Count
xFNum için = 1'den xIntRow'a
xRg = ActiveSheet.Range("A" & xFNum) olarak ayarla
xArr = Böl(xRg.Text, " ")
UBound(xArr) > 0 ise
xFArr = 0 için UBound(xArr) için
Eğer xArr(xFArr) <> "" O zaman
xRg.Value = xArr(xFArr)
xRg = xRg.Offset olarak ayarlayın(ColumnOffset:=1)
Eğer son
Sonraki
Eğer son
Sonraki
Sonraki
Eğer son
Application.ScreenUpdating = True
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Txt dosyam virgülle ayrılmış içeriyorsa nasıl yapılır?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bul ve Değiştir işlevini, önce virgülü boşlukla değiştirmek için kullanabilir ve Excel dosyasına dönüştürmek için yukarıdaki yöntemlerden birini uygulayabilirsiniz.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunu kodda değiştirmenin bir yolu yok mu? Bunu 130 dosyayla yapmak zorundayım
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aynı soru
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu konuda hala yardıma ihtiyacı olanlar için, xArr = Split(xRg.Text, " ") ile xArr = Split(xRg.Text, ",") değiştirin.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Modülü verilen şekilde çalıştırdığımda her .txt dosyasını mevcut sayfaya yeni bir satır olarak değil yeni bir sayfa olarak ekliyor. Her .txt dosyası için yeni sayfalar yerine bunu çıktı olarak elde etmenin bir yolu var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Tüm metin dosyalarını tek bir sayfada birleştirmek mi istiyorsunuz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
evet benim de istediğim bu.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Davinder, aşağıdaki vba kodunu deneyebilirsiniz.
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 & "\" & "*.txt")
    Do While xFile <> ""
        Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
        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 txt files", , "Kutools for Excel"
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Kod çok yardımcı oluyor, txt dosyalarını toplu olarak alan bulduğum tek kod bu, üzerinde ihtiyacım olan düzeltme de Joyce ve Davinder'ın peşinde olduğu şey.
.txt dosyalarını ayıklamak ve hepsini belirli bir sütunda birbirinin altına yapıştırmak, diyelim ki 'N' sütunu.

Ayrıca, içe aktarılan .txt dosyalarının aşağıdaki gibi olması için bir "if koşulu" eklemenin mümkün olup olmayacağını bilmek gerekir.
.txt dosyaları 'A' harfiyle başlıyorsa, 'N1' hücresinden başlayarak 'sayfa 2'e yapıştırılmalıdır.
ve .txt dosyaları 'B' harfiyle başlıyorsa, 'N2' hücresinden başlayarak 'Sayfa 2'ye yapıştırın
başka MsgBox "Tanınmayan .txt dosyası amacı" olmalıdır.

şimdiden teşekkür ederim
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu kod benim için çalıştı ama yine de bazılarını değiştirmem gerekiyor.

*Yeni bir sayfa açmadan aynı kağıda yapıştırıp daha uzun sürdüğü için kopyalamasını istiyorum.

*İçe aktarılan txt dosyalarının A harfi ile başlıyorsa sayfa 1'e ve B harfi ile başlıyorsa Sayfa 2'ye aktarılabilmesi için koşullu if eklenmesi gerekir


Alt testkopya3()
Çalışma kitabı olarak xWb'yi karart
Çalışma Kitabı Olarak xToBook'u Karartın
Dize Olarak xStrPath'i Dim
FileDialog Olarak xFileDialog Dim
Dize Olarak xFile Dim
Dim xFiles Yeni Koleksiyon Olarak
Dim i As Long
LastRow'u Uzun Süre Karart
Menzil Olarak Dim Rng
xFileDialog = Application.FileDialog(msoFileDialogFolderPicker) olarak ayarlayın
xFileDialog.AllowMultiSelect = Yanlış
xFileDialog.Title = "Bir klasör seçin [Kutools for Excel]"
xFileDialog.Show = -1 ise
xStrPath = xFileDialog.SelectedItems(1)
Eğer son
xStrPath = "" ise, Sub'dan Çıkın
Eğer Right(xStrPath, 1) <> "\" O zaman xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
Eğer xFile = "" O zaman
MsgBox "Dosya bulunamadı", vbInformation, "Kutools for Excel"
Exit Sub
Eğer son
xFile Yaparken <> ""
xFiles.xFile, xFile ekleyin
xDosya = Yön()
döngü
Aralık("N2").Seç
xToBook = ThisWorkbook'u ayarla
xFiles.Count > 0 ise
i = 1 için xFiles.Count
xWb = Workbooks.Open(xStrPath & xFiles.Item(i)) olarak ayarlayın
xWb.Etkinleştir
'Txt verilerinin seçilmesi ve kopyalanması
Aralık (Selection, Selection.End (xlDown)). Seçin
Selection.Copy
xToBook.Activate
ActiveSheet.Paste
Seçim.Son(xlAşağı).Kayma(1).Seç
On Error Resume Next
Hata Dönüsünde 0
xWb.Kapat Yanlış
Sonraki
Eğer son
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Üzgünüm, ellerim bağlı
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, kodum çalışıyor ancak yalnızca ilk dosyayı içe aktarıyor. Kopyalama için bir yöntem hatası olduğunu söylüyor. Hata ayıklayıcı aşağıdaki kod satırını vurgular. Herhangi bir fikir?


xWb.Worksheets(1).Sonra kopyala:=xToBook.Sheets(xToBook.Sheets.Count)
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aynı sorun bende de var çözüm bulundu mu?
Bu yorum sitedeki moderatör tarafından en aza indirildi
hey katie,
Yorumunuzun oldukça eski olduğunu biliyorum, ancak aynı sorunla karşılaştım ve şu şekilde düzelttim: Modül, aktif .xlsx projesinin bir alt klasörüne eklenmelidir. Kodu, genellikle makrolarımı sakladığım PERSONAL.XLSB dosyamın bir alt klasörüne kopyalama hatası yaptım ve bu, diğer makrolarımla değil, bununla değil.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Modülü yeniden çalıştırırken yinelenenler istemiyorsanız, vba kodundaki sayfaları nasıl silersiniz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Üzgünüm, Harsh, tekrar tekrar ithal etmekten kaçınmaya dikkat edin.
Bu yorum sitedeki moderatör tarafından en aza indirildi
merhaba, excel'de önceki sıfırların kaldırılmasını önlemek istiyorum.

aşağıdaki kodu denedim ama çalışmıyor


Alt Test ()
Çalışma kitabı olarak xWb'yi karart
Çalışma Kitabı Olarak xToBook'u Karartın
Dize Olarak xStrPath'i Dim
FileDialog Olarak xFileDialog Dim
Dize Olarak xFile Dim
Dim xFiles Yeni Koleksiyon Olarak
Dim kadar uzun
Dim j As Uzun
xFileDialog = Application.FileDialog(msoFileDialogFolderPicker) olarak ayarlayın
xFileDialog.AllowMultiSelect = Yanlış
xFileDialog.Title = "Bir klasör seçin"
xFileDialog.Show = -1 ise
xStrPath = xFileDialog.SelectedItems(1)
Eğer son
xStrPath = "" ise, Sub'dan Çıkın
Eğer Right(xStrPath, 1) <> "\" O zaman xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
Eğer xFile = "" O zaman
MsgBox "Dosya bulunamadı", vbInformation, "Kutools for Excel"
Exit Sub
Eğer son
xFile Yaparken <> ""
xFiles.xFile, xFile ekleyin
xDosya = Yön()
döngü
xToBook = ThisWorkbook'u ayarla
xFiles.Count > 0 ise
I = 1 için xFiles.Count
xWb = Workbooks.Open(xStrPath & xFiles.Item(I)) olarak ayarlayın
ActiveSheet.Cells.NumberFormat = "@" 'Bu, metin dosyası verilerini yapıştırmadan önce metin biçiminde excel yapmak içindir
xWb.Worksheets(1).Sonra Kopyala:=xToBook.Sheets(xToBook.Sheets.Count)
On Error Resume Next
ActiveSheet.Name = xWb.Name
Hata Dönüsünde 0
xWb.Kapat Yanlış
Sonraki
Eğer son
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Pooja, içe aktardıktan sonra tüm baştaki sıfırları seçimden kaldırmak için Kutools for Excel'in Baştaki Sıfırları Kaldır işlevini deneyebilirsiniz.
Bu yorum sitedeki moderatör tarafından en aza indirildi
ama kaldırmak istemiyorum. Önceki sıfırların kaldırılmasını önlemek istiyorum.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Baştaki sıfırları tutmak istiyorsanız, bunları Hücre Biçimi ile metin biçimi olarak biçimlendirebilirsiniz.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, *.txt dosyalarını eklemek için bu kodu nasıl değiştirirsiniz: 1,2,3,4,5,6,7,8,9,10,11, vb. Şu anda kod dosyaları şu şekilde ekler:1,10,11,12,13,14,15,16,17,18,19,2,20,21, XNUMX, vb. Teşekkürler!
Bu yorum sitedeki moderatör tarafından en aza indirildi
txt dosya adlarından sayfa adlarının yalnızca belirli bir bölümünü alma şansı var mı?

yukarıdaki koda göre tüm sayfa adını alıyor.
Bu yorum sitedeki moderatör tarafından en aza indirildi
çok teşekkürler office 2007 excel'de işimi yaptım
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, kodum çalışıyor ancak yalnızca ilk dosyayı içe aktarıyor. Kopyalama için bir yöntem hatası olduğunu söylüyor. Hata ayıklayıcı aşağıdaki kod satırını vurgular. Herhangi bir fikir?


xWb.Worksheets(1).Sonra kopyala:=xToBook.Sheets(xToBook.Sheets.Count)
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Martinho,
Aynı Sorunu yaşadım ve bu satırı değiştirerek çözdüm:
xToBook = ThisWorkbook'u ayarla
için
xToBook = ActiveWorkbook'u ayarla
Belki bu yardımcı olur.
Bu yorum sitedeki moderatör tarafından en aza indirildi
0

yardıma ihtiyacım var herhangi bir fikrim yok vba excel 13000 gibi birden fazla metin dosyasını içe aktarmak istiyorum. metin dosyasının adı hücreyle aynı örneğin (c1=112 yani metin dosyası adı da 112'dir) metin dosyası 112'nin olduğu anlamına gelir c112'yi içe aktarın.
Bu yorum sitedeki moderatör tarafından en aza indirildi
yardıma ihtiyacım var herhangi bir fikrim yok vba excel 13000 gibi birden fazla metin dosyasını içe aktarmak istiyorum. metin dosyasının adı hücreyle aynı örneğin (c1=112 yani metin dosyası adı da 112'dir) metin dosyası 112'nin olduğu anlamına gelir c112'yi içe aktarın.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Kod çalışır ancak her metin dosyasını çalışma kitabındaki yeni bir sekmeye aktarır. Son metin dosyasındaki verilerin altındaki aynı çalışma sayfasındaki yeni metin dosyasını içe aktarmak için kodun neresinde değiştirilebileceği hakkında bir fikriniz var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aşağıdaki kodda, bir metin dosyasını her içe aktarırken yolu seçmek yerine klasörü belirtmek istersem, hangi değişikliğin yapılması gerekir?

VBA KODU:

Alt ImportCSVsWithReference()
'UpdatebyKutoolsforExcel20151214
Dim xSht As Çalışma Sayfası
Çalışma kitabı olarak xWb'yi karart
Dize Olarak xStrPath'i Dim
FileDialog Olarak xFileDialog Dim
Dize Olarak xFile Dim
Hatada ErrHandler'a Git
xFileDialog = Application.FileDialog(msoFileDialogFolderPicker) olarak ayarlayın
xFileDialog.AllowMultiSelect = Yanlış
xFileDialog.Title = "Bir klasör seçin [Kutools for Excel]"
xFileDialog.Show = -1 ise
xStrPath = xFileDialog.SelectedItems(1)
Eğer son
xStrPath = "" ise, Sub'dan Çıkın
xSht = ThisWorkbook.ActiveSheet olarak ayarlayın
If MsgBox("İçe aktarmadan önce mevcut sayfa silinsin mi?", vbYesNo, "Kutools for Excel") = vbYes Sonra xSht.UsedRange.Clear
Application.ScreenUpdating = Yanlış
xFile = Dir(xStrPath & "\" & "*.txt")
xFile Yaparken <> ""
xWb = Workbooks.Open(xStrPath & "\" & xFile) olarak ayarlayın
ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
xWb.Kapat Yanlış
xDosya = Yön
döngü
Application.ScreenUpdating = True
Exit Sub
Hata İşleyicisi:
MsgBox "txt dosyası yok", "Kutools for Excel"
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, lütfen aşağıdaki kodu deneyin
Sub Test()
'UpdatebyExtendoffice6/7/2016
    Dim xWb As Workbook
    Dim xToBook As Workbook
    Dim xStrPath As String
    Dim xFile As String
    Dim xFiles As New Collection
    Dim I As Long
    xStrPath = "C:\Users\AddinsVM001\Desktop\test" 'Here is the parth you can modify
    If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
    xFile = Dir(xStrPath & "*.txt")
    If xFile = "" Then
        MsgBox "No files found", vbInformation, "Kutools for Excel"
        Exit Sub
    End If
    Do While xFile <> ""
        xFiles.Add xFile, xFile
        xFile = Dir()
    Loop
    Set xToBook = ThisWorkbook
    If xFiles.Count > 0 Then
        For I = 1 To xFiles.Count
            Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
            xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)
            On Error Resume Next
            ActiveSheet.Name = xWb.Name
            On Error GoTo 0
            xWb.Close False
        Next
    End If
End Sub

"C:\Users\AddinsVM001\Desktop\test", metin dosyasını içe aktarabileceğiniz klasör yoludur, lütfen istediğiniz gibi değiştirin.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, değerli VBA kodunuz için teşekkürler.
Ancak, birden çok txt dosyası için 'çalışma sayfasındaki tek bir sayfaya, her txt dosyası için ayrı bir sayfaya değil' bir koda ihtiyacım var.
Amacım için kodunuzu ne düzenlemeliyim?

Teşekkürler,
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, lütfen aşağıdaki kodu deneyin
Sub Test()
    'UpdatebyExtendoffice 10/26/2022
    Dim xWb As Workbook
    Dim xToBook As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xFiles As New Collection
    Dim I As Long
    Dim J As Long
    Dim xRg As Range
    Dim xSaveRg As Range
    Dim xSh As Worksheet
    
    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
    If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
    xFile = Dir(xStrPath & "*.txt")
    If xFile = "" Then
        MsgBox "No files found", vbInformation, "Kutools for Excel"
        Exit Sub
    End If
    Do While xFile <> ""
        xFiles.Add xFile, xFile
        xFile = Dir()
    Loop
    Set xToBook = ThisWorkbook
    Set xSh = xToBook.Sheets.Add
    Set xRg = xSh.Range("A1")
    J = 1
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    If xFiles.Count > 0 Then
        For I = 1 To xFiles.Count
            Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
            Set xSaveRg = xWb.Worksheets(1).UsedRange
            J = xSaveRg.Rows.Count + 1 + J
            Debug.Print xRg.Address
            xSaveRg.Copy Destination:=xRg
            On Error Resume Next
            xWb.Close False
            
            Set xRg = xSh.Cells(J, 1)
        Next
    End If
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu iyi çalışıyor. Ancak içe aktardığında, sayfaları name.txt ile yeniden adlandırır, sayfaya .txt uzantısı eklemeden yalnızca adı tutması nasıl sağlanır?
3.5 üzerinden 5 olarak derecelendirildi
Bu yorum sitedeki moderatör tarafından en aza indirildi
Ok nvm, google yardımı ile yanıt buldu.
satırı değiştir:
ActiveSheet.Name = xWb.Name
ile:
ActiveSheet.Name = Left(xWb.Name,Len(xWb.Name)-4)
sayfa adından son 4 harfi kaldırır. Bana ihtiyacım olanı etkili bir şekilde veriyordu. .txt olmadan ad
Şerefe
4 üzerinden 5 olarak derecelendirildi
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aşağıdaki kod, metin dosyasını sayfalara aktarırken boşluk veya sekmeye dayalı olarak verileri sütunlara bölebilir. Ama her txt dosyası için ayrı bir sekme istemiyorum, hepsini bir sayfa altında istiyorum. Bilgiler her dosya için aynı formattadır. . Bunun, içe aktarılan her dosyanın yeni bir sekme olması yerine tek bir sayfa olmasına izin vermek için ne değiştirilebilir, herhangi bir yardım takdir edilecektir

Alt ImportTextToExcel()
'güncellemeExtendoffice20180911
Çalışma kitabı olarak xWb'yi karart
Çalışma Kitabı Olarak xToBook'u Karartın
Dize Olarak xStrPath'i Dim
FileDialog Olarak xFileDialog Dim
Dize Olarak xFile Dim
Dim xFiles Yeni Koleksiyon Olarak
Dim kadar uzun
xIntRow Uzun Süre Dim
Dim xFNum, xFArr Uzunluğunda
Dize Olarak Dim xStrValue
Aralık olarak Dim xRg
xArr'ı karart
xFileDialog = Application.FileDialog(msoFileDialogFolderPicker) olarak ayarlayın
xFileDialog.AllowMultiSelect = Yanlış
xFileDialog.Title = "Bir klasör seçin [Kutools for Excel]"
xFileDialog.Show = -1 ise
xStrPath = xFileDialog.SelectedItems(1)
Eğer son
xStrPath = "" ise, Sub'dan Çıkın
Eğer Right(xStrPath, 1) <> "\" O zaman xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
Eğer xFile = "" O zaman
MsgBox "Dosya bulunamadı", vbInformation, "Kutools for Excel"
Exit Sub
Eğer son
xFile Yaparken <> ""
xFiles.xFile, xFile ekleyin
xDosya = Yön()
döngü
xToBook = ThisWorkbook'u ayarla
On Error Resume Next
Application.ScreenUpdating = Yanlış
xFiles.Count > 0 ise

I = 1 için xFiles.Count
xWb = Workbooks.Open(xStrPath & xFiles.Item(I)) olarak ayarlayın
xWb.Worksheets(1).Sonra kopyala:=xToBook.Sheets(xToBook.Sheets.Count)

ActiveSheet.Name = xWb.Name

xWb.Kapat Yanlış
xIntRow = ActiveCell.CurrentRegion.Rows.Count
xFNum için = 1'den xIntRow'a
xRg = ActiveSheet.Range("A" & xFNum) olarak ayarla
xArr = Böl(xRg.Text, " ")
UBound(xArr) > 0 ise
xFArr = 0 için UBound(xArr) için
Eğer xArr(xFArr) <> "" O zaman
xRg.Value = xArr(xFArr)
xRg = xRg.Offset olarak ayarlayın(ColumnOffset:=1)
Eğer son
Sonraki
Eğer son
Sonraki
Sonraki
Eğer son
Application.ScreenUpdating = True
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Daniel, aşağıdaki kodu deneyin, tüm metin dosyalarını Txt adlı tek bir sayfaya aktarır.
Şuna dikkat edin: metin adı mevcut sayfa adıyla aynıysa, metin dosyası içe aktarılamayabilir.
Sub ImportTextToExcel2()

'UpdatebyExtendoffice20230106

Dim xWb As Workbook

Dim xToBook As Workbook

Dim xStrPath As String

Dim xFileDialog As FileDialog

Dim xFile As String

Dim xFiles As New Collection

Dim I As Long

Dim xIntRow As Long

Dim xFNum, xFArr As Long

Dim xStrValue As String

Dim xRg As Range

Dim xArr

Dim xRowL, xRowH As Integer

Dim xTxtWS, xWSD As Worksheet

Dim xTxtWS_Rg As Range

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

If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"

xFile = Dir(xStrPath & "*.txt")

If xFile = "" Then

MsgBox "No files found", vbInformation, "Kutools for Excel"

Exit Sub

End If

Do While xFile <> ""

xFiles.Add xFile, xFile

xFile = Dir()

Loop

Set xToBook = ThisWorkbook

On Error Resume Next

Set xTxtWS = xToBook.Worksheets("Txt")

If IsNull(xTxtWS) Or IsEmpty(xTxtWS) Then

    Set xTxtWS = xToBook.Worksheets.Add

    xTxtWS.Name = "Txt"

End If

Application.ScreenUpdating = False

Application.DisplayAlerts = False

xTxtWS.Activate

If xFiles.Count > 0 Then

xRowL = 1

For I = 1 To xFiles.Count

Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))

xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)

Set xWSD = xToBook.Sheets(xToBook.Sheets.Count)

xTxtWS.Activate

xWb.Close False

xIntRow = xWSD.UsedRange.CurrentRegion.Rows.Count

    For xFNum = 1 To xIntRow

        Set xRg = xWSD.Range("A" & xFNum)

        xArr = Split(xRg.Text, " ")

        Set xTxtWS_Rg = xTxtWS.Cells.Range("A" & xRowL)

'        If UBound(xArr) > 0 Then

            For xFArr = 0 To UBound(xArr)

                If xArr(xFArr) <> "" Then

                xTxtWS_Rg.Value = xArr(xFArr)

                Set xTxtWS_Rg = xTxtWS_Rg.Offset(ColumnOffset:=1)

                End If

            Next

'        End If

xRowL = xRowL + 1

    Next

xWSD.Delete

Next

End If

Application.ScreenUpdating = True

Application.DisplayAlerts = True

End Sub


Buraya henüz hiç yorum yapılmamış

Bizi takip et

Telif Hakkı © 2009 - www.extendoffice.com. | Tüm hakları Saklıdır. Tarafından desteklenmektedir ExtendOffice. | | | Site Haritası
Microsoft ve Office logosu, Microsoft Corporation'ın Amerika Birleşik Devletleri ve / veya diğer ülkelerdeki ticari markaları veya tescilli ticari markalarıdır.
Sectigo SSL ile korunmaktadır