/ / ¿Cómo uso Excel VBA para copiar celdas específicas de dos libros de trabajo y combinarlas en una sola? - excel, vba, excel-vba

¿Cómo uso Excel VBA para copiar celdas específicas de dos libros de trabajo y combinarlas en una sola? - excel, vba, excel-vba

Tengo dos libros de Excel que estoy tratando deLeer de. Necesito leer de una columna en la primera y comparar ese campo con un campo en el segundo libro de trabajo. Si hay una coincidencia, quiero copiar la fila original a un nuevo libro de Excel y adjuntar el nombre con una parte de otra columna. Además, si se llena otra columna en esa fila, debo duplicar la fila original nuevamente en el nuevo libro de trabajo y agregar ese nombre. Eso sucederá hasta 20 veces por fila, pero no siempre.

Básicamente, necesito hacer algo como esto:

Workbook A:

Name         OtherData1     OtherData2
--------     ----------     ----------
Railroad     Data           Data
MailRoute    Data           Data
BoatPath     Data           Data

Workbook B:

Name          rtuTopic[1]   rtuTopic[2]   [.....]   rtuTopic[20]
--------      --------      --------                --------
Railroad      Route_01      Route_05                Route_21
MailRoute     Route_12      NULL                    NULL
BoatPath      Route_01      Route_15                NULL

Workbook C (the result I want)

Name            OtherData1     OtherData2     rtuTopic
--------        ----------     ----------     --------
Railroad_01     Data           Data           Route_01
Railroad_05     Data           Data           Route_05
...........
Railroad_21     Data           Data           Route_21
MailRoute_12    Data           Data           Route_12
BoatPath_01     Data           Data           Route_01
BoatPath_15     Data           Data           Route_15

Las columnas que necesito adjuntar no están convenientementeuno al lado del otro Están separados por otras 5 o 6 columnas, más o menos, y no sé por dónde empezar. Busqué y vi cómo copiar hojas completas de un libro a otro, pero no vi cómo realmente específicamente cavar y duplicar una fila de la forma que necesito.

Respuestas

0 para la respuesta № 1

Parece más bien que está pidiendo que se escriba una solución para usted en lugar de hacer una pregunta específica, pero aquí hay algunos consejos para comenzar:

Suponiendo que los otros libros de trabajo ya estén abiertos, puede consultar los otros libros utilizando la lista de libros, es decir,

Dim workBookA As Workbook
Dim workBookB As Workbook
Dim workBookC As Workbook

Set workBookA = Workbooks("Workbook A")
Set workBookB = Workbooks("Workbook B")
Set workBookC = Workbooks("Workbook C")

Se puede hacer referencia a las hojas de esos libros utilizando el nombre de la hoja, es decir, si desea una hoja llamada "Principal" en el Libro de trabajo A, entonces puede usar:

workBookA.Sheets("Main").Activate

La copia de una columna de la hoja a una llamada "Informe" en el Libro de ejercicios C podría hacerse de la siguiente manera:

workBookA.Sheets("Main").Range("a1", workBookA.Sheets("Main").Range("a1").End(xlDown)).Copy
workBookC.Sheets("Report").Range("a1").PasteSpecial

o si esto es más fácil de seguir

workBookA.Sheets("Main").Activate
Range("a1", Range("a1").End(xlDown)).Copy
workBookC.Sheets("Report").Activate
Range("a1").PasteSpecial

Buena suerte