Parola di controllo da Excel utilizzando VBA in Microsoft Excel 2010
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 “)
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 –
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.