- Tham gia
- 18/3/08
- Bài viết
- 8,306
- Được thích
- 15,849
- Giới tính
- Nam
- Nghề nghiệp
- Làm ruộng.
Làm cho nó đủ bộ em, khai thác thì phải khai thác cho hết.trời còn có cột nữa hả anh ???
Làm cách nào ta lấy dữ liệu 2 cột đầu và 5 dòng cuối của bảng. Kết quả như sau:
View attachment 249032
.Move .RecordCount - 5
varBookmark = .Bookmark
varArray = .GetRows(5, varBookmark, Fields:=Array("ID", "Code"))
Sheet2.Range("A3:B7").Value = Application.WorksheetFunction.Transpose(varArray)
có cách nào khác mà ko xài Transpose không bạn nhỉ ?Lấy cột thì tôi chỉ biết dùng GetRows, còn cách khác thì chưa biết. (Không tính dùng đến câu lệnh SQL)
Mã:.Move .RecordCount - 5 varBookmark = .Bookmark varArray = .GetRows(5, varBookmark, Fields:=Array("ID", "Code")) Sheet2.Range("A3:B7").Value = Application.WorksheetFunction.Transpose(varArray)
Hổng biết thì hỏi thôi màBởi vậy em mới hỏng có hiểu như bài 33 em nói. Biết ngay là Sư Phụ "cà khịa" em nữa rồi.
Sheet2.Range("A2").CopyFromRecordset .DataSource, 5, 2
Duyệt qua từng field được mà bạnLấy cột thì tôi chỉ biết dùng GetRows, còn cách khác thì chưa biết. (Không tính dùng đến câu lệnh SQL)
Mã:.Move .RecordCount - 5 varBookmark = .Bookmark varArray = .GetRows(5, varBookmark, Fields:=Array("ID", "Code")) Sheet2.Range("A3:B7").Value = Application.WorksheetFunction.Transpose(varArray)
Đưa vào listbox rồi đưa xuống, tuy nhiên nó chậm lắm.có cách nào khác mà ko xài Transpose không bạn nhỉ ?
Lấy số tổng của dòng - 5, di chuyển đến kết quả đó. Bài #44 của bạn @ongke0711 có rồi đó bạn.2 cột thì đoạn này sửa lại thôi, dòng thì em không biết dòng cuối lùi lại 5 tính làm sao cả
Rich (BB code):Sheet2.Range("A2").CopyFromRecordset .DataSource, 5, 2
Sheet2.Range("A2").CopyFromRecordset .DataSource, , 3 ''Lay 3 cot
Sheet2.Range("A2").CopyFromRecordset .DataSource, , 1 ''Lay 1 cot
Hehe em đã làm được:Tiếp tục với dữ liệu bài 1, với đoạn truy vấn sau:
Mã:"Select * from [Sheet1$]"
Làm cách nào ta lấy dữ liệu 2 cột đầu và 5 dòng cuối của bảng. Kết quả như sau:
View attachment 249032
Sub LayDL_HLMT1()
With CreateObject("ADODB.Recordset")
.Open ("Select * from [Sheet1$]"), "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0 Xml;Data Source=" & ThisWorkbook.FullName, 1, 1
Debug.Print .RecordCount
.Move .RecordCount - 5
Sheet2.Range("A2").CopyFromRecordset .DataSource, 5, 2
End With
End Sub
Ghi tên cột xuống sheet luôn nhé bạn.Hehe em đã làm được:
Mã:Sub LayDL_HLMT1() With CreateObject("ADODB.Recordset") .Open ("Select * from [Sheet1$]"), "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0 Xml;Data Source=" & ThisWorkbook.FullName, 1, 1 Debug.Print .RecordCount .Move .RecordCount - 5 Sheet2.Range("A2").CopyFromRecordset .DataSource, 5, 2 End With End Sub
Bảng có 5 cột, lấy cột 2,3,4 và 5 dòng cuối thì tính sao?Sheet2.Range("A2").CopyFromRecordset .DataSource, 5, 2
vầy đi chon gọn move làm chi nữaHehe em đã làm được:
Mã:Sub LayDL_HLMT1() With CreateObject("ADODB.Recordset") .Open ("Select * from [Sheet1$]"), "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0 Xml;Data Source=" & ThisWorkbook.FullName, 1, 1 Debug.Print .RecordCount .Move .RecordCount - 5 Sheet2.Range("A2").CopyFromRecordset .DataSource, 5, 2 End With End Sub
Sub LayDL2_HLMT1()
With CreateObject("ADODB.Recordset")
.Open ("Select * from [Sheet1$]"), "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0 Xml;Data Source=" & ThisWorkbook.FullName, 1, 1
Debug.Print .RecordCount
''.Move .RecordCount - 5
Sheet2.Range("A2").CopyFromRecordset .DataSource, 5, 2
End With
End Sub
Không move sao lấy được dòng cuối anh?vầy đi chon gọn move làm chi nữa
Mã:Sub LayDL2_HLMT1() With CreateObject("ADODB.Recordset") .Open ("Select * from [Sheet1$]"), "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0 Xml;Data Source=" & ThisWorkbook.FullName, 1, 1 Debug.Print .RecordCount ''.Move .RecordCount - 5 Sheet2.Range("A2").CopyFromRecordset .DataSource, 5, 2 End With End Sub
á vậy thì ra nó lấy 5 dòng trên
Hehe em đã làm được:
Mã:Sub LayDL_HLMT1() ... Sheet2.Range("A2").CopyFromRecordset .DataSource, 5, 2 End With End Sub
Khó quá em ngồi lót dép hóng thôiNếu lấy cột cách nhau thì sao?
Cái vụ này dễ mà đâu khó đâuKhó quá em ngồi lót dép hóng thôi
Dễ với các anh chị, khó với emCái vụ này dễ mà đâu khó đâu
Bạn mượn bài của anh @ongke0711 thêm cáu Array(2,3,5) vôDễ với các anh chị, khó với em
With CreateObject("ADODB.Recordset")
.Open ("Select * from [Sheet1$]"), "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0 Xml;Data Source=" & ThisWorkbook.FullName, 1, 1
.Move .RecordCount - 5
ArrData = Application.Transpose(.GetRows(, , Array(1, 2, 4)))
Sheet2.Cells(1).Resize(UBound(ArrData), UBound(ArrData, 2)).Value = ArrData
End With