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 đỡ
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
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 đỡ !
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