Molte volte, devi copiare i dati da un file Excel a un documento Word. Puoi farlo con una macro molto facilmente. La macro aprirà un documento word nuovo / esistente, ne copierà il contenuto, quindi salverà e chiuderà il documento word. Vediamo come si fa.

Il codice che puoi usare è – Option Explicit _Sub CreateNewWordDoc ()

Dim i As Integer Dim wrdApp As Object, wrdDoc As Object Set wrdApp = CreateObject (“Word.Application”)

wrdApp.Visible = True Set wrdDoc = wrdApp.Documents.Add With wrdDoc For i = 1 to 100 .Content.InsertAfter “Here is an example test line #” & i .Content.InsertParagraphAfter Next i If Dir (“B: \ Test \ MyNewWordDoc.docx “) <>” “Quindi uccidere” B: \ Test \ MyNewWordDoc.docx “.SaveAs (” B: \ Test \ MyNewWordDoc.docx “)

Close End With wrdApp.Quit Set wrdDoc = Nothing Set wrdApp = Nothing End Sub_ Per copiare il codice sopra nel tuo file, premi Alt + F11 sulla tastiera Sul lato sinistro, vedrai Oggetti di Microsoft Excel Fare clic con il tasto destro e selezionare Inserisci Quindi fai 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 mentre 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.

Set wrdApp = CreateObject (“Word.Application”) _ Se Word è già in esecuzione nel sistema, _CreateObject 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 al momento della creazione. Per renderlo visibile, è necessario impostare wrdApp.Visible = True in modo che sia visibile.

Set 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 word. L’oggetto wrdDoc è stato assegnato a questo nuovo documento in modo da poterlo utilizzare in seguito nel codice.

Nel caso in cui non si desideri aprire una nuova cartella di lavoro ma una cartella di lavoro esistente, è possibile sostituire questa riga con _Set wrdDoc = wrdApp.Documents.Open (“B: \ My Documents \ WordDocs \ Doc1.docx”) _ Questa riga si apre un documento word esistente che è stato salvato nella posizione specificata.

Con wrdDoc… .End With Questo è il nostro ciclo “With” che funzionerà interamente con l’oggetto wrdDoc. Una volta aperto questo ciclo, non è necessario ripetere il testo “wrdDoc” di nuovo in questo ciclo. Puoi iniziare direttamente con il punto (“.”)

prima di qualsiasi oggetto relativo a wrdDoc. Questo ciclo termina con l’istruzione End With. Dopo aver immesso l’istruzione End With, non è possibile fare riferimento agli oggetti dopo wrdDoc con solo “.”.

Per i = da 1 a 100 .Content.InsertAfter “Ecco un esempio di riga di prova #” & i .Content.InsertParagraphAfter Next i 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 prova #” e poi aggiunge il numero dell’incremento. Quindi inserisce un’interruzione di riga / interruzione di paragrafo in modo che 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 –

img2

If Dir (“B: \ Test \ MyNewWordDoc.Docx”) <> “” Allora Kill “B: \ Test \ MyNewWordDoc.docx” _ _ .SaveAs (“B: \ Test \ MyNewWordDoc.docx”) _ _.Close Una volta completato il ciclo “For”, il codice controllerà se il file MyNewWordDoc.docx esiste. In caso affermativo, lo cancellerà. Quindi salverà il nuovo file con lo stesso nome e chiuderà il file.

wrdApp.Quit Set wrdDoc = Nothing Set wrdApp = Nothing La parola application viene chiusa e quindi i 2 oggetti che sono stati creati verranno rilasciati o impostati su “Nothing”, in modo che la memoria occupata da questi oggetti venga liberata. Questo è l’intero codice che si occupa di copiare i contenuti da Excel a Word.

image 48