Ho due cartelle di lavoro Excel che sto cercando di creareleggere da. Ho bisogno di leggere da una colonna nella prima e confrontare quel campo con un campo nella seconda cartella di lavoro. Se c'è una corrispondenza, voglio copiare la riga originale in una nuova cartella di lavoro Excel e aggiungere il nome a una parte di un'altra colonna. Inoltre, se viene riempita un'altra colonna in quella riga, devo duplicare nuovamente la riga originale nella nuova cartella di lavoro e aggiungere quel nome. Ciò accadrà fino a 20 volte per riga, ma non sempre.
Fondamentalmente, ho bisogno di fare qualcosa del genere:
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
Le colonne che devo aggiungere non sono convenientiuno accanto all'altro. Sono separati da altre 5 o 6 colonne, dare o ricevere, e non so da dove iniziare. Ho cercato in giro e ho visto come copiare interi fogli da una cartella di lavoro a un'altra, ma non ho visto come specificamente scavare e duplicare una riga nel modo in cui ho bisogno.
risposte:
0 per risposta № 1Sembra più che tu stia chiedendo una soluzione da scrivere per te piuttosto che fare una domanda specifica, ma ecco alcuni suggerimenti per farti andare:
Supponendo che le altre cartelle di lavoro siano già aperte, puoi fare riferimento alle altre cartelle utilizzando l'elenco delle cartelle di lavoro, ad es.
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")
È possibile fare riferimento ai fogli in quelle cartelle di lavoro utilizzando il nome del foglio, ad esempio se si desidera un foglio chiamato "Principale" sulla cartella di lavoro A, è possibile utilizzare:
workBookA.Sheets("Main").Activate
La copia di una colonna dal foglio a una chiamata "Report" sulla cartella di lavoro C potrebbe essere eseguita in questo modo:
workBookA.Sheets("Main").Range("a1", workBookA.Sheets("Main").Range("a1").End(xlDown)).Copy
workBookC.Sheets("Report").Range("a1").PasteSpecial
o se questo è più facile da seguire
workBookA.Sheets("Main").Activate
Range("a1", Range("a1").End(xlDown)).Copy
workBookC.Sheets("Report").Activate
Range("a1").PasteSpecial
In bocca al lupo