В Microsoft Excel получение информации из закрытой книги — один из самых экономящих время способов получить точные данные с помощью кода VBA. В этой статье мы узнаем, как читать информацию из закрытой книги с помощью VBA в Microsoft Excel .

Если вы получаете несколько файлов по электронной почте или из любого другого источника и хотите получить информацию, хранящуюся в определенной ячейке, вам следует прочитать это руководство.

Чтобы понять этот пример, нам нужно создать несколько примеров файлов по пути, который мы будем использовать в коде VBA; здесь мы сохранили пару файлов (файлы North & West) в пути «D: \ testing».

Чтобы извлечь данные из всех файлов Excel в папке, нам нужно выполнить следующие шаги для запуска редактора VB:

Щелкните вкладку «Разработчик». В группе «Код» выберите Visual Basic

img1

  • Скопируйте приведенный ниже код в стандартный модуль

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

Нам нужно запустить макрос, и результат будет следующим:

img4

===

Вывод: используя приведенный выше код, мы можем получить данные из закрытой книги из определенной ячейки.

Примечание. Ячейка A1 используется в качестве примера; если вы хотите получить данные из любой другой ячейки, вам просто нужно указать эту ячейку.

image 48

Если вам понравились наши блоги, поделитесь ими с друзьями на Facebook. А также вы можете подписаться на нас в Twitter и Facebook .

Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить, дополнить или усовершенствовать нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]