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 № 1Parece 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