Molte volte, devi copiare i dati da un file excel in un documento word. Puoi farlo con una macro molto facilmente. La macro aprirà un documento word nuovo/esistente, copierà i contenuti e quindi salverà e chiuderà il word doc. Vediamo come si fa.
Il codice che puoi usare è -
Opzione esplicita
Sub CreaNuovaParolaDoc()
Dim i As Integer
Dim wrdApp As Object, wrdDoc As Object
Imposta wrdApp = CreateObject ("Word.Application")
wrdApp.Visible = True
Imposta wrdDoc = wrdApp.Documents.Add
Con wrdDoc
Per i = da 1 a 100
.Content.InsertAfter "Ecco un esempio di test line #" & i
.Contenuto.InserisciParagrafoDopo
Avanti io
If Dir(“B:\Test\MyNewWordDoc.docx”) “” Then Kill “B:\Test\MyNewWordDoc.docx”
.Salva con nome ("B:\Test\MyNewWordDoc.docx")
.Chiudere
Termina con
wrdApp.Quit
Imposta wrdDoc = Niente
Imposta wrdApp = Niente
Fine sottotitolo
Per copiare il codice sopra nel tuo file,
- Premi Alt + F11 sulla tastiera
- Sul lato sinistro, vedrai gli oggetti di Microsoft Excel
- Fare clic con il tasto destro e selezionare Inserisci
- Quindi fare clic su Modulo
- Copia il codice nella finestra del codice a destra
Ora vediamo come funziona questo codice -
Per prima cosa dichiariamo le variabili di cui abbiamo bisogno -i come numero intero per incrementare ogni riga man mano che viene popolata dal file excel alla parola doc. Quindi le 2 variabili oggetto wrdApp e wrdDoc, wrdApp è l'oggetto Applicazione di Word e wrdDoc è l'oggetto Documento di Word.
Imposta wrdApp = CreateObject ("Word.Application")
Se Word è già in esecuzione nel tuo sistema,CreaOggetto creerà una nuova istanza di Word. Quindi questa riga assegna la variabile oggetto wrdApp all'applicazione Word che puoi utilizzare in seguito nel codice.
wrdApp.Visible = True
L'istanza di Word appena creata non sarà visibile durante la sua creazione. Per renderlo visibile, devi impostare wrdApp.Visible = True in modo che sia visibile.
Imposta wrdDoc = wrdApp.Documents.Add
Abbiamo creato la nuova istanza dell'applicazione Word ma non abbiamo ancora aperto un documento Word vuoto. Quindi questo comando aprirà un nuovo documento di Word. L'oggetto wrdDoc è stato assegnato a questo nuovo documento in modo da poterlo utilizzare successivamente nel codice.
Nel caso in cui non si desideri aprire una nuova cartella di lavoro ma aprire una cartella di lavoro esistente, è possibile sostituire questa riga con
Imposta wrdDoc = wrdApp.Documents.Open(“B:\My Documents\WordDocs\Doc1.docx”)
Questa riga apre un documento Word esistente che è stato salvato nella posizione specificata.
Con wrdDoc… .Termina con
Questo è il nostro ciclo "With" che funzionerà interamente con l'oggetto wrdDoc. Una volta aperto questo ciclo, non è necessario ripetere nuovamente il testo "wrdDoc" in questo ciclo. Puoi iniziare direttamente con il punto (".") prima di qualsiasi oggetto relativo a wrdDoc. Questo ciclo termina con il Termina con dichiarazione. Una volta che l'istruzione End With è stata immessa, non è possibile fare riferimento agli oggetti dopo wrdDoc solo con il ".".
Per i = da 1 a 100
.Content.InsertAfter "Ecco una riga di test di esempio #" &i
.Contenuto.InserisciParagrafoDopo
Avanti io
Questo è il ciclo "For". Incrementa da 1 a 100 e ad ogni incremento, inserisce una riga con il testo "Ecco un esempio di riga di test #" e quindi aggiunge il numero di incremento. Quindi inserisce un'interruzione di riga/interruzione di paragrafo in modo che l'incremento successivo appaia sulla riga successiva, come un nuovo paragrafo.
Quindi questo processo verrà ripetuto 100 volte, poiché il ciclo for indica For i = da 1 a 100. Questo è l'output che otterrai -
If Dir(“B:\Test\MyNewWordDoc.Docx”) “” Quindi kill “B:\Test\MyNewWordDoc.docx”
.Salva con nome ("B:\Test\MyNewWordDoc.docx")
.Chiudere
Una volta completato il ciclo "For", il codice verificherà se il file MyNewWordDoc.docx esiste. Se lo fa, lo eliminerà. E poi salverà il nuovo file con lo stesso nome e chiuderà il file.
wrdApp.Quit
Imposta wrdDoc = Niente
Imposta wrdApp=Niente
La parola applicazione viene chiusa e quindi i 2 oggetti che sono stati creati verranno rilasciati o posti a “Niente”, in modo da liberare la memoria occupata da questi oggetti. Questo è l'intero codice che si occupa di copiare i contenuti da excel a word.