Đọc thông tin từ sổ làm việc đã đóng bằng VBA trong Microsoft Excel
Trong Microsoft Excel, lấy thông tin từ sổ làm việc đã đóng là một trong những cách tiết kiệm thời gian nhất để có được dữ liệu chính xác bằng mã VBA. Trong bài này, chúng ta sẽ học cách đọc thông tin từ một sổ làm việc đã đóng bằng VBA trong Microsoft Excel.
Nếu bạn nhận được nhiều tệp qua email hoặc bất kỳ nguồn nào khác và bạn muốn lấy thông tin được lưu trữ trong một ô cụ thể, thì bạn nên đọc hướng dẫn này.
Để hiểu ví dụ này, chúng ta cần tạo một số tệp mẫu trong một đường dẫn mà chúng ta sẽ sử dụng trong mã VBA; ở đây, chúng tôi đã lưu một số tệp (tệp phía Bắc và phía Tây) trong đường dẫn “D: \ testing”.
Để trích xuất dữ liệu từ tất cả các tệp excel trong một thư mục, chúng ta cần làm theo các bước sau để khởi chạy trình soạn thảo VB:
Nhấp vào tab Nhà phát triển Từ nhóm Mã chọn Visual Basic
-
Sao chép đoạn mã dưới đây trong mô-đun chuẩn
Sub ReadDataFromAllWorkbooksInFolder() Dim FolderName As String, wbName As String, r As Long, cValue As Variant Dim wbList() As String, wbCount As Integer, i As Integer FolderName = "D:\testing" ' create list of workbooks in foldername' --- Comment wbCount = 0 wbName = Dir(FolderName & "\" & "*.xls") While wbName <> "" wbCount = wbCount + 1 ReDim Preserve wbList(1 To wbCount) wbList(wbCount) = wbName wbName = Dir Wend If wbCount = 0 Then Exit Sub ' get values from each workbook' --- Comment r = 0 Workbooks.Add For i = 1 To wbCount r = r + 1 cValue = GetInfoFromClosedFile(FolderName, wbList(i), "Sheet1", "A1") Cells(r, 1).Formula = wbList(i) Cells(r, 2).Formula = cValue Next i End Sub Private Function GetInfoFromClosedFile(ByVal wbPath As String, _ wbName As String, wsName As String, cellRef As String) As Variant Dim arg As String GetInfoFromClosedFile = "" If Right(wbPath, 1) <> "\" Then wbPath = wbPath & "\" If Dir(wbPath & "\" & wbName) = "" Then Exit Function arg = "'" & wbPath & "[" & wbName & "]" & _ wsName & "'!" & Range(cellRef).Address(True, True, xlR1C1) On Error Resume Next GetInfoFromClosedFile = ExecuteExcel4Macro(arg) End Function
Chúng ta cần chạy macro và sau đây sẽ là ảnh chụp nhanh kết quả:
===
Kết luận: Sử dụng đoạn mã trên, chúng ta có thể lấy dữ liệu từ sổ làm việc đã đóng từ một ô cụ thể.
Lưu ý: Ô A1 được sử dụng làm ví dụ; nếu bạn muốn truy xuất dữ liệu từ bất kỳ ô nào khác, thì bạn chỉ cần đề cập đến ô đó.
Nếu bạn thích blog của chúng tôi, hãy chia sẻ nó với bạn bè của bạn trên Facebook. Và bạn cũng có thể theo dõi chúng tôi trên Twitter và Facebook.
Chúng tôi rất muốn nghe ý kiến từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện, bổ sung hoặc đổi mới công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi tại [email protected]