Tạo file tổng dữ liệu

Liên hệ QC

Hoacomay96

Thành viên chính thức
Tham gia
18/3/08
Bài viết
96
Được thích
8
Các huynh ơi em có đoạn mã dùng để mở các file trong thư mục và copy vào 1 file tổng nhưng nếu các file có số thứ tự bị gián đoạn thì nó chỉ copy đến file đó thôi. (ví dụ thư mục có 40 file bắt đầu từ dulieu_1, dulieu_2 ...Dulieu_40 nhưng nếu thiếu file Dulieu_20 thì nó chỉ copy được đến file 19 thôi). Nhờ các huynh sửa giúp em.

For i = 1 To filecount '( là số lượng file trong thư mụcem đã đếm được)
path = dir & "TXT_" & Format(i, "") & ".xls"
Workbooks.Open FileName:=path
Worksheets("Sheet1").Select
Application.DisplayAlerts = False
rowsn(i) = Worksheets("Sheet1").UsedRange.Rows.count
Worksheets("Sheet1").UsedRange.Select
Selection.Copy
ActiveWorkbook.Close True
If i = 1 Then
a = 1: rg1 = "A" & 1
Range(rg1).Select
Else
b = i - 1
a = rowsn(b) + a
rg = "A" & a
Range(rg).Select
End If
ActiveSheet.Paste
Next i
 
bạn đã có
path = dir & "TXT_" & Format(i, "") & ".xls"

' &

Application.DisplayAlerts = False

-> khi k tìm thấy file thì chương trình sẽ dừng

bạn nên thêm lệnh FindFile cho CODE của mình để ktra sự tồn tại của file -->nếu tồn tại thì mới thực hiện code copy / nếu không thì xử lý (tùy bạn) bỏ qua hoặc bỏ trống số dòng nào đó, vv
 
Upvote 0
Cụ thể của em là nếu không có file thứ i thì lấy file i+1 để xử lý tiếp. huynh giúp em với.
 
Upvote 0
Cụ thể của em là nếu không có file thứ i thì lấy file i+1 để xử lý tiếp. huynh giúp em với.

tigertiger k rõ biến dir của bạn lấy ở đâu ra -> vì như thế trùng với hàm Dir trong VBA, tôi tạm đổi thành dir00 nhé, khi đó ta có đoạn code sửa như sau,
trong đó Dir(Path) <> "" nghĩa là có tồn tại file đó (trái lại ="" là k tồn tại)

PHP:
  For i = 1 To filecount '( là so^' lu+o+.ng file trong thu+ mu.cem ?ã ?e^'m ?u+o+.c)
  Path = dir00 & "TXT_" & Format(i, "") & ".xls"

  If Dir(Path) <> "" Then
    Workbooks.Open Filename:=Path
    Worksheets("Sheet1").Select
    Application.DisplayAlerts = False
    rowsn(i) = Worksheets("Sheet1").UsedRange.Rows.Count
    Worksheets("Sheet1").UsedRange.Select
    Selection.Copy
    ActiveWorkbook.Close True
    If i = 1 Then
        a = 1: rg1 = "A" & 1
        Range(rg1).Select
    Else
        b = i - 1: a = rowsn(b) + a
        rg = "A" & a: Range(rg).Select
    End If
    ActiveSheet.Paste
  End If
Next i

bạn tham khảo thêm topic này: http://www.giaiphapexcel.com/forum/showthread.php?t=35

chúc thành công
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom