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

img1

  • 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

img2

img3

Chúng ta cần chạy macro và sau đây sẽ là ảnh chụp nhanh kết quả:

img4

===

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 ô đó.

image 48

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]