2009-11-26 34 views
8

Básicamente necesito recopilar unas pocas cifras de otro libro de trabajo (que se encuentra y puede ser abierto por un UserForm, por lo tanto, la ubicación y los nombres son variables). Necesito usar VBA para esto, ya que también necesito completar un gráfico con estos datos. Preferiría no tener que abrir el otro libro de trabajo para hacerlo, pero si es mucho más fácil, entonces está bien.¿Cómo hago referencia a otro libro de trabajo (abierto o cerrado) y recupero los valores en VBA? - Excel 2007

UserForm está hecho y funciona bien, y tengo el código que necesito para llenar el gráfico, sin embargo, no puedo hacer que VBA replique los datos del otro libro y lo asigne a las variables que lo necesito.

Alguna idea sobre cómo puedo hacer que VBA haga esto? Podria ser muy apreciado.

Gracias,

Rob.

Respuesta

11

Deberá abrir el archivo de una manera u otra si desea acceder a los datos que contiene. Obviamente, una forma es para abrirlo en la instancia de aplicación de Excel, por ejemplo: -

(código no probado)

Dim wbk As Workbook 
Set wbk = Workbooks.Open("C:\myworkbook.xls") 

' now you can manipulate the data in the workbook anyway you want, e.g. ' 

Dim x As Variant 
x = wbk.Worksheets("Sheet1").Range("A6").Value 

Call wbk.Worksheets("Sheet2").Range("A1:G100").Copy 
Call ThisWorbook.Worksheets("Target").Range("A1").PasteSpecial(xlPasteValues) 
Application.CutCopyMode = False 

' etc ' 

Call wbk.Close(False) 

Otra manera de hacerlo sería utilizar el proveedor de Excel ADODB para abrir una conexión a el archivo y luego use SQL para seleccionar datos de la hoja que desea, pero dado que de todos modos está trabajando desde Excel, no creo que haya ninguna razón para hacerlo en lugar de simplemente abrir el libro de trabajo. Tenga en cuenta que hay parámetros opcionales para el método Workbooks.Open() para abrir el libro como de solo lectura, etc.

Cuestiones relacionadas