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"
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à TableTrong tài liệu chỗ Kind đó có danh sách cụ thể không anh?
Ý 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...)Khi chưa lọc thì chỉ có 2 Kind Sheet và Table
Bạn thử với code sau nhé: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
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 đỡ.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
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.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.
Có thể gán nó vào mảng như sau nha 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 đỡ.
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