Gộp dữ liệu trên các sheet trên file Dongia để đưa vào 1 Mãng trên file B mà không cần mở file Dongia

Blue Softs Liên hệ QC

ptm0412

Bad Excel Member
Thành viên BQT
Super Moderator
Tham gia
4/11/07
Bài viết
11,600
Được thích
32,595
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Consultant
Anh cho em hỏi, chỗ [Kind] = "Sheet", thì Sheet ở đây có phân biệt Chart sheet và Worksheet không?
Rất tiếc là không. Thế nên file dữ liệu tốt nhất không vẽ vời báo cáo hay biểu đồ. Tốt nhất là format as table tất cả bảng dữ liệu và lọc [Kind] = "Table"

1627612965979.png
 

ptm0412

Bad Excel Member
Thành viên BQT
Super Moderator
Tham gia
4/11/07
Bài viết
11,600
Được thích
32,595
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Consultant
Trong tài liệu chỗ Kind đó có danh sách cụ thể không anh?
Trong tài liệu hàm M tiếng Anh mà tôi dùng thì chỉ có cú pháp hàm để ra kết quả, không chi tiết hoá kết quả. Mà như hình bài trên thì chart sheet bị đánh đồng Kind là "sheet". Khi chưa lọc thì chỉ có 2 Kind Sheet và Table
 

Hai Lúa Miền Tây

❆❆❆❆❆❆❆❆
Thành viên BQT
Administrator
Tham gia
18/3/08
Bài viết
8,141
Được thích
15,443
Giới tính
Nam
Nghề nghiệp
Làm ruộng.
Dạ, file B anh tạo file mới anh. Anh làm giúp bằng ADO giúp em với. Em cảm ơn
Bạn thử với code sau nhé:

Mã:
Sub LayDL_HLMT()
    Dim strPath As String
    strPath = "C:\Users\HP\Downloads\Don gia.xlsx" 'Chinh duong dan den file 'Don gia.xlsx'
    With CreateObject("ADODB.Connection")
        .Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath & ";Extended Properties=""Excel 12.0;HDR=No""")
        Sheet1.Range("A2").CopyFromRecordset .Execute("Select * From [GIA NHA$A2:F] Union All Select * From [GIA CAY$A2:F] Union All Select * From [GIA DAT$A2:F] Union All Select * From [HO TRO KHAC$A2:F]")
    End With
End Sub
 

ptm0412

Bad Excel Member
Thành viên BQT
Super Moderator
Tham gia
4/11/07
Bài viết
11,600
Được thích
32,595
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Consultant
Ý em hỏi "danh sách cụ thể" của Kind đó là gì. Ngoài (Sheet, Table) thì còn loại nào nữa không anh? (Ví dụ Range, Name...)
Không "chi tiết hoá kết quả" tức là không có "danh sách cụ thể" :p :p :p
Range: Chưa từng thấy
Name: có từng xài 1 Kind là DefinedName, Chỉ liệt kê Name tĩnh, không chơi name động

1627618538281.png
 
Lần chỉnh sửa cuối:

chisinhvnn

Thành viên tiêu biểu
Tham gia
7/3/08
Bài viết
454
Được thích
97
Bạn thử với code sau nhé:

Mã:
Sub LayDL_HLMT()
    Dim strPath As String
    strPath = "C:\Users\HP\Downloads\Don gia.xlsx" 'Chinh duong dan den file 'Don gia.xlsx'
    With CreateObject("ADODB.Connection")
        .Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath & ";Extended Properties=""Excel 12.0;HDR=No""")
        Sheet1.Range("A2").CopyFromRecordset .Execute("Select * From [GIA NHA$A2:F] Union All Select * From [GIA CAY$A2:F] Union All Select * From [GIA DAT$A2:F] Union All Select * From [HO TRO KHAC$A2:F]")
    End With
End Sub
Cảm ơn anh. Nhưng kết quả chưa đúng anh. sheet Gia Nhà, cột Hệ số 1,08, khi copy xong thì nó thành 108 anh. Cho em hỏi thêm. Có thể gán trực tiếp trên biến luôn được không? không gán vào sheet nữa. Nhờ anh giúp đỡ.
 

Hai Lúa Miền Tây

❆❆❆❆❆❆❆❆
Thành viên BQT
Administrator
Tham gia
18/3/08
Bài viết
8,141
Được thích
15,443
Giới tính
Nam
Nghề nghiệp
Làm ruộng.
Cảm ơn anh. Nhưng kết quả chưa đúng anh. sheet Gia Nhà, cột Hệ số 1,08, khi copy xong thì nó thành 108 anh.
Nó lấy dữ liệu theo kiểu chuẩn không phải kiểu của Tiếng Việt nhé bạn.

Cho em hỏi thêm. Có thể gán trực tiếp trên biến luôn được không? không gán vào sheet nữa. Nhờ anh giúp đỡ.
Có thể gán nó vào mảng như sau nha bạn.

Mã:
Sub LayDL_HLMT()
    Dim strPath As String
    Dim Arr() As Variant
    strPath = "C:\Users\HP\Downloads\Don gia.xlsx" 'Chinh duong dan den file 'Don gia.xlsx'
    With CreateObject("ADODB.Connection")
        .Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath & ";Extended Properties=""Excel 12.0;HDR=No""")
        Arr() = .Execute("Select * From [GIA NHA$A2:F] Union All Select * From [GIA CAY$A2:F] Union All Select * From [GIA DAT$A2:F] Union All Select * From [HO TRO KHAC$A2:F]").Getrows
    End With
End Sub
 
Top Bottom