Xin giúp đỡ về nhập dữ liệu tự động từ nhiều file txt vào Excel (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

tuoigiyeuem

Thành viên chính thức
Tham gia
19/12/08
Bài viết
99
Được thích
4
Mình có nhiều file txt và muốn tổng hợp vào file excel như file mình đính kèm. Mong các bạn giúp đỡ
 

File đính kèm

Lần chỉnh sửa cuối:
Mình có nhiều file txt và muốn tổng hợp vào file excel như file mình đính kèm. Mong các bạn giúp đỡ

Mỗi file txt đưa vào 1 sheet của Excel hay gom chung toàn bộ các file txt vào 1 sheet vậy bạn?
Tôi hỏi thế vì mở file Excel của bạn lên, xem cấu trúc thì thấy chẳng giống tí nào so với cấu trúc của file txt cả
 
Mình tham gia code sau:

PHP:
Sub Main()
 Dim ListF, i
 Application.ScreenUpdating = False
  ListF = Application.GetOpenFilename("Text Files (*.txt), *.txt" _
    , , "Select *.txt Files", , True)
     If IsArray(ListF) Then
       Sheet4.Cells.ClearContents
      For i = LBound(ListF) To UBound(ListF)
    GetDT ListF(i), i = LBound(ListF)
    Next
  End If
End Sub

'======================================

Sub GetDT(ByVal FName As String, tde As Boolean)
  Dim Data As Variant, Tmp As Variant, Sh As Integer
   Dim Kq(), k, j, n
   
    Sh = FreeFile
     Open FName For Input As #Sh
     
Do Until EOF(Sh)
 n = n + 1
   Line Input #Sh, Data
      Tmp = Split(Data, "|")
        If IsArray(Tmp) And n > IIf(tde, 0, 3) Then
          k = k + 1
        ReDim Preserve Kq(1 To 12, 1 To k)
      For j = 1 To UBound(Tmp)
    Kq(j, k) = Trim(Tmp(j))
  Next
 End If
Loop
Close #1

Sheet4.[A65536].End(3).Offset(IIf(tde, 0, 1)).Resize(UBound(Kq, 2), _
UBound(Kq, 1)) = WorksheetFunction.Transpose(Kq)
End Sub

Mình gửi file đã ráp code bạn chạy thu (Mình chưa làm nhưng theo mình nên có thêm 1 cột để theo dõi tên của tệp của từng dòng dữ liệu để sau biết đã ttổng hợp từ đâu)
 

File đính kèm

Lần chỉnh sửa cuối:
Mình có thêm 1 vài vấn đề mong các bạn giúp đỡ.
- Thêm cột Tờ BĐ sheet THop, Tự tạo Creater List
- Từ số liệu tại Sheet THop lọc dữ liệu và tổng hợp danh sách thửa đất của từng hộ gia đình trên Phiếu giao nhận diện tích. Nếu hộ gia đình có trên 21 thửa đất Phiếu có khung như Page 2 , Page3.
- Tổng hợp Phiếu giao nhận diện tích theo thôn trên từng Sheet hoặc ra từng file Excel.
Mong các bạn giúp đỡ mình với !
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn tải file về nhấn nút chọn thu mục có chứa file Txt quét chọn toàn bộ rồi mở xem sao?
 

File đính kèm

Bạn xem hộ mình file Dulieu2 rồi giúp mình với.
Cám ơn bạn nhiều !
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn thử tham khảo nha bạn chọn thôn rồi chọn hộ là có biên bản
 

File đính kèm

Cám ơn bạn nhiều.
Nhưng ý của mình là :
- 1 thôn có bao nhiêu hộ thì sẽ tự động chạy ra bấy nhiêu cái Biên Bản kia luôn. Mỗi thôn sẽ để riêng ở các sheet khác nhau.
- Bạn bổ sung hộ mình cái cột Tờ BĐ ( tên của file .txt mình nhập vào) nữa với :(
Mong bạn giúp đỡ !
 

File đính kèm

Lần chỉnh sửa cuối:
Cám ơn bạn nhiều.
Nhưng ý của mình là :
- 1 thôn có bao nhiêu hộ thì sẽ tự động chạy ra bấy nhiêu cái Biên Bản kia luôn. Mỗi thôn sẽ để riêng ở các sheet khác nhau.
- Bạn bổ sung hộ mình cái cột Tờ BĐ ( tên của file .txt mình nhập vào) nữa với :(
Mong bạn giúp đỡ !

Có lẽ mình xin từ chối điều bạn nêu vì không ai viết code mà lại tạo ra cái trang biên bản hàng trăm trang (Tương đương hàng trăm hộ) như vậy cả. Với 1-2 trang bạn có thể in-Xem tất cả các hộ và các thôn cơ mà.
Còn code thêm Tờ BD thì tối mình làm cho
(Giờ còn làm báo cáo Thuế, hết hạn nộp rồi vì mai và ngày kia là ngày nghỉ)
 
UH. Cám ơn bạn rất nhiều vì đã giúp đỡ nhiệt tình cho mình.
( Mình muốn nó tự tạo ra hàng loạt trang Biên bản để in cho nhanh vì số lượng Biên bản của mình rất nhiều, nếu in thủ công thì rất lâu. hjhj)
Có ai rảnh rảnh giúp mình với nhé !
 
Lần chỉnh sửa cuối:
Bạn thêm hộ mình cái cột Tờ BĐ với.
Cám ơn nhiều !
 
Bạn thay code này vào sẽ thêm côt Tờ BĐ
PHP:
Sub GetDT(ByVal FName As String, tde As Boolean)
  Dim Data As Variant, Tmp As Variant, Sh As Integer
   Dim Kq(), k, j, n
   Dim Alas
   Tmp = Split(FName, "\")
   Alas = Replace(Tmp(UBound(Tmp)), ".txt", "")
    Sh = FreeFile
     Open FName For Input As #Sh
Do Until EOF(Sh)
 n = n + 1
   Line Input #Sh, Data
      Tmp = Split(Data, "|")
        If IsArray(Tmp) And n > IIf(tde, 0, 3) Then
          k = k + 1
        ReDim Preserve Kq(1 To 13, 1 To k)
       
       If n > 3 Then Kq(1, k) = Alas
      For j = 1 To UBound(Tmp)
    Kq(j + 1, k) = Trim(Tmp(j))
  Next
 End If
Loop
Close #1
If tde Then Kq(1, 2) = "T" & Chr(234) & " BD"
Sheet4.[A65536].End(3).Offset(IIf(tde, 0, 1)).Resize(UBound(Kq, 2), _
UBound(Kq, 1)) = WorksheetFunction.Transpose(Kq)
End Sub

Tại sao bạn nói là in lâu nhỉ, chỉ cần nhấn nút 1 lần thì bạn đã có thể in của từng người tất cả các thôn rồi.
 
Cám ơn bạn nhé !
Mình nói lâu bởi vì mình phải in rất nhiều phiếu : 1 xã có ~ 15 thôn, 1 thôn có ~100 hộ.
Nếu tự tạo ra các sheet ( hoặc file) của từng thôn chứa tất cả các hộ luôn thì khi in sẽ nhanh hơn.
 
Bạn sửa giúp mình 1 số vấn đề này với:
- Cắt bỏ những cột và dòng mình tô màu xanh và vàng.( Cột : Tâm X, Tâm Y, D/tích PL, Loại đất, Sh Tam, xứ đồng; Dòng ------ )
- Dữ liệu của mình có nhiều file có dữ liệu dư thừa ở phần cuối ( dc2.txt, dc3.txt, ...) nên sinh ra khoảng trống. Bạn cắt bỏ hộ minh với.


- Chỗ địa chỉ thường trú: tên thôn Bản Tát, Bản Cáu bị lỗi
- Khi chọn 1 số thôn ( Bản Tát,Bản Cáu...) xuống dưới chọn CSD đất thì không có.
Cám ơn bạn !
 

File đính kèm

Lần chỉnh sửa cuối:
Cám ơn bạn sealand. Mình còn 1 số khó khăn sau mong bạn và mọi người sửa giúp mình với :
- Mình tạo Macro xóa dòng và cột dữ liệu dư thừa nhưng ở file TK2.xls thì chạy được còn file TK1.xls thì lại lỗi.
- File TK1.xls : - file rất nặng, chạy rất chậm và khi cuốn thanh lọc thì thấy dữ liệu thỉnh thoảng bị ẩn mất
- Sheet PhieuGNDT : ở phần chọn thôn và CSD đất lúc thấy dữ liệu lúc không.
Mong bạn và mọi người giúp đỡ !

Hjxhjx. Mod xóa hộ mình bài chứa file: dulieu3.rar dulieu4.rar ( báo bị đầy) với để mình up file khác lên nhờ mọi người giúp đỡ !
 
Lần chỉnh sửa cuối:
[h=2]Xin giúp đỡ về code VBA[/h]
File đính kèm : http://www.mediafire.com/download/m0...ky/so_lieu.rar
Em có 1 file Excel ( test1.xls) dùng để nhập dữ liệu từ nhiều file txt.
Tuy nhiên số liệu nhập vào chưa được như ý muốn. Em muốn số liệu nhập vào bắt đầu từ hàng thứ 3 ( như minh họa ở file test2.xls )
Mong mọi người sửa code giúp em với.​
 
Web KT

Bài viết mới nhất

Back
Top Bottom