Copy 1 vùng dữ liệu ở workbooks khác

  • Thread starter Thread starter ditimdl
  • Ngày gửi Ngày gửi
Liên hệ QC

ditimdl

Thành viên thường trực
Tham gia
11/10/06
Bài viết
378
Được thích
107
Giới tính
Nam
Nghề nghiệp
Pharmacist
PHP:
Sub Copy_data()
    Application.ScreenUpdating = False
    Dim wb As Workbook
    Set wb = Application.Workbooks.Open("C:\VBA\Vidu.xls")
    Sheets("sheet1").Range("A1:D11").Copy
    Windows("TheFirts").Activate
    Sheets("sheet1").Select
    
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlValues
    wb.Close
    Columns("A:D").EntireColumn.AutoFit
    Application.CutCopyMode = False
    Range("A1").Select
    ActiveWorkbook.Save
End Sub
Đoạn code trên dùng để mở file Vidu.xls ra và copy vùng A1:D11 sau đó paste vào ô A1 của workbook Thefirts.
Cho em hỏi sửa code như thế nào để vẫn được kết quả như trên mà ko phải open file Vidu.xls?
 
Bạn chép đoạn code này vào file TheFirst và đặt Name cho vùng A1:D11 của file Vidu là Data

PHP:
Sub Copy_data()
With ActiveSheet.QueryTables.Add(Connection:= _
        "ODBC;DSN=Excel Files;DBQ=C:\VBA\Vidu.xls;DefaultDir=D:;DriverId=790;MaxBufferSize=2048;PageTimeout=5;" _
        , Destination:=Range("A1"))
        .CommandText = Array( _
        "SELECT *" & Chr(13) & "" & Chr(10) & "FROM `C:\VBA\Vidu`.Data Data")
        .Name = "Query from Excel Files"
        .FieldNames = False
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Xin cảm ơn ca_dafi nhưng code của bạn mình đọc không hiểu lắm, cái đoạn code trên dùng để kết nói dữ liệu giống như ADO phải không bạn?
Ngoài phương pháp này ra các bạn còn có cách làm nào khác nữa không?
 
Upvote 0
Bạn chép đoạn code này vào file TheFirst và đặt Name cho vùng A1:D11 của file Vidu là Data

PHP:
Sub Copy_data()
With ActiveSheet.QueryTables.Add(Connection:= _
        "ODBC;DSN=Excel Files;DBQ=C:\VBA\Vidu.xls;DefaultDir=D:;DriverId=790;MaxBufferSize=2048;PageTimeout=5;" _
        , Destination:=Range("A1"))
       ...
End Sub
Trường hợp tôi chưa đặt name nào cả mà chỉ muốn copy từ dòng i -> j của sheet X vào sheet Y tại dòng cuối (sẽ có nhiều file TheFirst...)
Kiệt chỉ giúp luôn, có ví dụ càng tốt. Cái này mình học hoài mà không hiểu hoài.
 
Upvote 0
Trường hợp tôi chưa đặt name nào cả mà chỉ muốn copy từ dòng i -> j của sheet X vào sheet Y tại dòng cuối (sẽ có nhiều file TheFirst...)
Kiệt chỉ giúp luôn, có ví dụ càng tốt. Cái này mình học hoài mà không hiểu hoài.

Em cũng thực sự chưa biết cách nào để lấy chính xác vùng cần lấy (copy) từ 1 file đóng (không mở file lên) nếu như không dùng Name để xác định vùng cần copy.
 
Upvote 0
Web KT

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

Back
Top Bottom