2011-10-24 28 views
12

Tenemos que escribir una hoja de cálculo de Excel con código VBA; el código lee y realiza operaciones sobre los datos en la primera hoja de cálculo.Importación de datos de hoja de cálculo de Excel a otra hoja de cálculo de Excel que contiene VBA

El usuario recibirá hojas de cálculo que contienen datos pero que no contienen el código VBA. Necesitamos poder importar los datos de las hojas de cálculo que contienen los datos en la hoja de cálculo que contiene el código de VBA automáticamente. Las hojas de trabajo que contienen los datos tienen el mismo formato de columna y tipos de datos que la hoja de cálculo de la hoja de cálculo que contiene los datos.

Lo ideal sería abrir la hoja de cálculo que contiene el código VBA, presentar una interfaz de usuario que permita al usuario navegar a la hoja de cálculo que contiene los datos, hacer clic en Aceptar y los datos serán importados.

¿Cómo vas a hacer esto? Tiene que hacerse usando VBA en hojas de cálculo de Excel.

Muchas gracias.

+0

Y otro ... enlace clics a estafa de pharma. Por favor elimine y reemplace con una copia de la máquina Wayback. Mientras tanto, los lectores deben tener cuidado al hacer clic en el enlace de arriba (vba4all [dot] com ...). –

Respuesta

25

Esto debería empezar: El uso de VBA en su propio libro de Excel, haga que lo solicite al usuario el nombre de archivo de su archivo de datos, luego simplemente copia que alcance fijo en su libro de destino (que podría ser el mismo libro de trabajo como su macro habilitó uno, o un tercer libro de trabajo). Aquí está un ejemplo de VBA rápida de cómo funciona:

' Get customer workbook... 
Dim customerBook As Workbook 
Dim filter As String 
Dim caption As String 
Dim customerFilename As String 
Dim customerWorkbook As Workbook 
Dim targetWorkbook As Workbook 

' make weak assumption that active workbook is the target 
Set targetWorkbook = Application.ActiveWorkbook 

' get the customer workbook 
filter = "Text files (*.xlsx),*.xlsx" 
caption = "Please Select an input file " 
customerFilename = Application.GetOpenFilename(filter, , caption) 

Set customerWorkbook = Application.Workbooks.Open(customerFilename) 

' assume range is A1 - C10 in sheet1 
' copy data from customer to target workbook 
Dim targetSheet As Worksheet 
Set targetSheet = targetWorkbook.Worksheets(1) 
Dim sourceSheet As Worksheet 
Set sourceSheet = customerWorkbook.Worksheets(1) 

targetSheet.Range("A1", "C10").Value = sourceSheet.Range("A1", "C10").Value 

' Close customer workbook 
customerWorkbook.Close 
+0

Gracias - eso es justo lo que buscaba. – Anthony

Cuestiones relacionadas