Với các quy trình dưới đây, bạn có thể sử dụng ADO để truy xuất tập bản ghi từ sổ làm việc đã đóng và đọc / ghi dữ liệu.

Gọi thủ tục như sau:

GetWorksheetData “C: \ FoldernameFilename.xls”, “SELECT * FROM [SheetName $];”, ThisWorkbook.Worksheets (1) .Range (“A3”)

Thay thế SheetName bằng tên trang tính mà bạn muốn truy xuất dữ liệu.

Sub GetWorksheetData (strSourceFile As String, strSQL As String, TargetCell As Range)

Dim cn As ADODB.Connection, rs As ADODB.Recordset, f As Integer, r As Long If TargetCell Is Nothing Then Exit Sub Set cn = New ADODB. * .xls)}; DriverId = 790; ReadOnly = True; ” & _ “DBQ =” & strSourceFile & “;”

‘DriverId = 790: Excel 97/2000’ DriverId = 22: Excel 5/95 ‘DriverId = 278: Excel 4’ DriverId = 534: Excel 3 Trên Lỗi GoTo 0 Nếu cn Không có gì thì MsgBox “Không thể tìm thấy tệp! “, vbExclamation, ThisWorkbook.Name Exit Sub End If ‘open a recordset Set rs = New ADODB.Recordset On Error Resume Next rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText’ rs.Open” SELECT FROM [SheetName $] ” , _ cn, adOpenForwardOnly, adLockReadOnly, adCmdText ‘rs.Open “SELECT FROM [SheetName $]”, _ cn, adOpenStatic, adLockOptimistic, adCmdText’ rs.Open “SELECT FROM [SheetName $] WHERE [Tên trường] LIKE ‘A% ‘”, _ cn, adOpenStatic, adLockOptimistic, adCmdText’ rs.Open” CHỌN TỪ [Tên trang $] WHERE [Tên trường] THÍCH ‘A%’ ĐẶT HÀNG THEO [Tên trường] “, _ cn, adOpenStatic, adLockOptimistic, adCmdText ‘tùy chọn cách truy xuất tập bản ghi ‘Set rs = cn.Execute (“[A1: Z1000]”)’ trang tính đầu tiên ‘Đặt rs = cn.Execute (“[DefinedRangeName]”)’ bất kỳ trang tính nào Có Lỗi GoTo 0 Nếu rs Không có gì thì MsgBox “Không thể mở tệp! “, vbExclamation, ThisWorkbook.Name cn.Close Set cn = Nothing Exit Sub End If RS2WS rs, TargetCell ‘TargetCell.CopyFromRecordset rs’ cách tiếp cận tùy chọn cho Excel 2000 trở lên If rs.State = adStateOpen Then rs.Close End If Đặt rs = Không có gì cn.Close Đặt cn = Không có gì Kết thúc Sub Ví dụ macro giả định rằng dự án VBA của bạn đã thêm một tham chiếu đến thư viện đối tượng ADO.

Bạn có thể thực hiện việc này từ bên trong VBE bằng cách chọn menu Tools, References và chọn Microsoft ActiveX Data Objects x.x Object Library.