W programie Microsoft Excel uzyskiwanie informacji z zamkniętego skoroszytu jest jednym z najbardziej oszczędzających czas sposobów uzyskiwania dokładnych danych za pomocą kodu VBA. W tym artykule dowiemy się, jak czytać informacje z zamkniętego skoroszytu za pomocą VBA w programie Microsoft Excel.
Jeśli otrzymujesz wiele plików za pośrednictwem poczty e-mail lub innego źródła i chcesz uzyskać informacje przechowywane w określonej komórce, powinieneś przeczytać ten samouczek.
Aby zrozumieć ten przykład, musimy utworzyć kilka przykładowych plików w ścieżce, której użyjemy w kodzie VBA; tutaj zapisaliśmy kilka plików (pliki North & West) w ścieżce „D:\testing”.
Aby wyodrębnić dane ze wszystkich plików Excela w folderze, musimy wykonać poniższe kroki, aby uruchomić edytor VB:
- Kliknij kartę Deweloper
- Z grupy Kod wybierz Visual Basic
- Skopiuj poniższy kod w standardowym module
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" ' utwórz listę skoroszytów w nazwie folderu' --- Comment wbCount = 0 wbName = Dir(FolderName & "\" & "*.xls") While wbName "" wbCount = wbCount + 1 ReDim Zachowaj wbList(1 To wbCount) wbList(wbCount) = wbName wbName = Dir Wend Jeśli wbCount = 0 Then Exit Sub 'pobierz wartości z każdego skoroszytu' --- 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 & "[" & wb Nazwa & "]" & _ wsName & "'!" & Range(cellRef).Address(True, True, xlR1C1) W przypadku błędu Wznów Dalej GetInfoFromClosedFile = ExecuteExcel4Macro(arg) End Function
Musimy uruchomić makro, a poniżej będzie migawka wyniku:
Wniosek: Korzystając z powyższego kodu, możemy pobrać dane z zamkniętego skoroszytu z określonej komórki.
Uwaga: Komórka A1 jest używana jako przykład; jeśli chcesz pobrać dane z dowolnej innej komórki, wystarczy wspomnieć o tej komórce.
Jeśli podobały Ci się nasze blogi, podziel się nimi ze znajomymi na Facebooku. A także możesz śledzić nas na Twitterze i Facebooku.
Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy ulepszyć, uzupełnić lub unowocześnić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail