En Microsoft Excel, obtener información de un libro cerrado es una de las formas que más ahorra tiempo de obtener datos precisos utilizando el código VBA. En este artículo, aprenderemos cómo leer información de un libro de trabajo cerrado usando VBA en Microsoft Excel.

Si recibe varios archivos por correo electrónico o cualquier otra fuente y desea obtener información almacenada en una celda en particular, entonces debería leer este tutorial.

Para entender este ejemplo, necesitamos crear algunos archivos de muestra en una ruta que usaremos en el código VBA; aquí, hemos guardado un par de archivos (archivos North & West) en la ruta «D: \ testing».

Para extraer datos de todos los archivos de Excel en una carpeta, debemos seguir los pasos a continuación para iniciar el editor de VB:

Haga clic en la pestaña Desarrollador. Desde el grupo Código, seleccione Visual Basic

img1

  • Copie el siguiente código en el módulo estándar

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

Necesitamos ejecutar la macro y la siguiente será la instantánea del resultado:

img4

===

Conclusión: utilizando el código anterior, podemos obtener datos de un libro cerrado de una celda específica.

Nota: La celda A1 se usa como ejemplo; si desea recuperar datos de cualquier otra celda, simplemente debe mencionar esa celda.

image 48

Si te gustaron nuestros blogs, compártelo con tus amigos en Facebook. Y también puedes seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar, complementar o innovar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]