ADO không copy được toàn bộ dữ liệu (1 người xem)

Liên hệ QC

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

anhdepjai

Thành viên thường trực
Tham gia
16/6/10
Bài viết
383
Được thích
92
Chào mọi người,

E vướng đoạn này nhờ mọi người giúp: em muốn lấy dữ liệu từ file qua ADO.
Dữ liệu được copy sang sheet Temp và e sẽ xử lý sau khi có dữ liệu ở đó. Tuy nhiên thỉnh thoảng nó không cho copy toàn bộ dư liệu trong file nguồn mà có đoạn copy được, có đoạn không copy được.

Mọi người xem giúp với ah
Thanks
 

File đính kèm

Chào mọi người,

E vướng đoạn này nhờ mọi người giúp: em muốn lấy dữ liệu từ file qua ADO.
Dữ liệu được copy sang sheet Temp và e sẽ xử lý sau khi có dữ liệu ở đó. Tuy nhiên thỉnh thoảng nó không cho copy toàn bộ dư liệu trong file nguồn mà có đoạn copy được, có đoạn không copy được.

Mọi người xem giúp với ah
Thanks

ADO sử dụng cho dữ liệu "chuẩn" , File lấy dữ liệu của bạn đâu có giống 1 bảng dữ liệu chuẩn ? nếu thấy ADO không lấy hết dữ liệu thì cũng đừng ngạc nhiên
tôi không hiểu tại sao lại cần phải chia ra 3 , 4 liều khi cần lấy dữ liệu ( từ 1-> 50 , 55-> 65 , ....) tại sao không lấy hết 1 lần rồi bỏ vào Sheet Temp rồi xử lý sau ? Bạn có thể giải thích không ?
Nếu không sử dụng ADO cũng còn nhiều cách khác để lấy , nhưng tôi có làm tôi sẽ chỉ lấy dữ liệu của File con 1 lần thôi
 
Upvote 0
Cảm ơn bạn.
Vì mình lấy dữ liệu 1 lần không được nên mới chia ra để lấy.
Nhưng thỉnh thoảng có file nó không cho lấy mặc dù đã chia ra.
Mọi người có biết cách nào để lấy dữ liệu như file của mình không? xin chỉ giáo. Thanks
 
Upvote 0
Cảm ơn bạn.
Vì mình lấy dữ liệu 1 lần không được nên mới chia ra để lấy.
Nhưng thỉnh thoảng có file nó không cho lấy mặc dù đã chia ra.
Mọi người có biết cách nào để lấy dữ liệu như file của mình không? xin chỉ giáo. Thanks

tức là bây giờ tôi chỉ cần lấy dữ liệu từ File trong cột A 1 lần duy nhất là được phải không ?
 
Upvote 0
Mình muốn nhờ bạn copy toàn bộ dữ liệu trong sheet tokhaixuat02 của file Copy of TGHP-131.xls vào sheet TEMP của file kia.
THanks
 
Upvote 0
Upvote 0
Bạn dùng code này tùy biến nha
Mã:
Sub CopyVBA()
Dim Wb As Workbook
Dim Sh As Worksheet
Dim fPath As String
fPath = "D:\Copy of TGHP-131"
Application.ScreenUpdating = False
Set Wb = Application.Workbooks.Open(fPath)
Set Sh = Wb.Worksheets("ToKhaiXuat02")
Sh.[A1:AZ65535].Copy
Wb.Close vbNo
Sheets("Temp").[A1].PasteSpecial
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Bạn dùng code này tùy biến nha
Mã:
Sub CopyVBA()
Dim Wb As Workbook
Dim Sh As Worksheet
Dim fPath As String
fPath = "D:\Copy of TGHP-131"
Application.ScreenUpdating = False
Set Wb = Application.Workbooks.Open(fPath)
Set Sh = Wb.Worksheets("ToKhaiXuat02")
Sh.[A1:AZ65535].Copy
Wb.Close vbNo
Sheets("Temp").[A1].PasteSpecial
Application.ScreenUpdating = True
End Sub
Bạn có cách nào khác không?

Thanks
 
Upvote 0
Bạn có cách nào khác không?

Thanks
Khác là ntn?

Đề bài bạn đưa là: chuyển dữ liệu từ file nọ sang file kia.

Cách dùng ADO là ko hợp lý vì nguồn không phải dữ liệu chuẩn.

Phương pháp Copy paste như trên là hợp lý hơn.

Vậy bạn muốn phương pháp khác là như thế nào?
 
Upvote 0
Mình sử dụng thấy nó chạy chậm hơn ADO 1 chút nên muốn hỏi cách nào cho nó nhanh hơn ấy mà.
Tạm thời mình đã modify theo cách này. Thanks
 
Upvote 0
Mình sử dụng thấy nó chạy chậm hơn ADO 1 chút nên muốn hỏi cách nào cho nó nhanh hơn ấy mà.
Tạm thời mình đã modify theo cách này. Thanks
Thử code sau xem thế nào nha cũng VBA thôi
PHP:
Sub Copy_VBA()
Application.ScreenUpdating = False
    Dim Arr(), FileName As String
    FileName = ThisWorkbook.Path & "\Copy of TGHP-131.xls" ''Thay doi duong dan cho phu hop
    With Workbooks.Open(FileName, 0)
       With .Sheets("ToKhaiXuat02")
          Arr = .UsedRange.Value
       End With
       .Close False
    End With
    With Sheets("Temp")
        .UsedRange.ClearContents
        .Range("A1").Resize(UBound(Arr, 1), UBound(Arr, 2)) = Arr
    End With
Application.ScreenUpdating = True
End Sub
 
Upvote 0
OK để mình thử. Tại mỗi lần copy nhiều file nên muốn nó nuột hơn tý.
Thanks
 
Upvote 0
Thử code sau xem thế nào nha cũng VBA thôi
PHP:
Sub Copy_VBA()
Application.ScreenUpdating = False
    Dim Arr(), FileName As String
    FileName = ThisWorkbook.Path & "\Copy of TGHP-131.xls" ''Thay doi duong dan cho phu hop
    With Workbooks.Open(FileName, 0)
       With .Sheets("ToKhaiXuat02")
          Arr = .UsedRange.Value
       End With
       .Close False
    End With
    With Sheets("Temp")
        .UsedRange.ClearContents
        .Range("A1").Resize(UBound(Arr, 1), UBound(Arr, 2)) = Arr
    End With
Application.ScreenUpdating = True
End Sub
Cảm ơn Kiều Mạnh nhé, Code chạy nhanh rồi
 
Upvote 0
Web KT

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

Back
Top Bottom