Muitas vezes, você precisa copiar dados de um arquivo do Excel para um documento do Word. Você pode fazer isso com uma macro muito facilmente. A macro abrirá um documento do Word novo / existente, copiará o conteúdo e, em seguida, salvará e fechará o documento do Word. Vamos ver como isso é feito.
O código que você pode usar é -
Opção Explícita
Sub CreateNewWordDoc ()
Dim i As Integer
Dim wrdApp As Object, wrdDoc As Object
Defina wrdApp = CreateObject (“Word.Application”)
wrdApp.Visible = True
Defina wrdDoc = wrdApp.Documents.Add
Com wrdDoc
Para i = 1 a 100
.Content.InsertAfter “Aqui está um exemplo de linha de teste #” e i
.Content.InsertParagraphAfter
Proximo eu
If Dir (“B: \ Test \ MyNewWordDoc.docx”) “” Então Mate “B: \ Test \ MyNewWordDoc.docx”
.SaveAs (“B: \ Test \ MyNewWordDoc.docx”)
.Fechar
Terminar com
wrdApp.Quit
Definir wrdDoc = Nada
Definir wrdApp = Nothing
End Sub
Para copiar o código acima para o seu arquivo,
- Pressione Alt + F11 no teclado
- No lado esquerdo, você verá objetos do Microsoft Excel
- Clique com o botão direito e selecione Inserir
- Em seguida, clique em Módulo
- Copie o código para a janela de código à direita
Agora vamos ver como esse código funciona -
Primeiro, declaramos as variáveis de que precisamos -i como inteiros para incrementar cada linha à medida que ela é preenchida do arquivo Excel para a palavra doc. Em seguida, as 2 variáveis de objeto wrdApp e wrdDoc, wrdApp é o objeto Aplicativo do Word e wrdDoc é o objeto Documento do Word.
Defina wrdApp = CreateObject (“Word.Application”)
Se o Word já estiver sendo executado em seu sistema,CreateObject irá criar uma nova instância do Word. Portanto, esta linha atribui a variável de objeto wrdApp ao aplicativo Word, que você pode usar posteriormente no código.
wrdApp.Visible = True
A instância recém-criada do Word não ficará visível quando for criada. Para torná-lo visível, você precisa definir wrdApp.Visible = True para que seja visível.
Defina wrdDoc = wrdApp.Documents.Add
Criamos a nova instância do aplicativo do Word, mas ainda não abrimos um documento do Word em branco. Portanto, este comando abrirá um novo documento do Word. O objeto wrdDoc foi atribuído a este novo documento para que possamos usá-lo posteriormente no código.
Caso você não queira abrir uma nova pasta de trabalho, mas abra uma pasta de trabalho existente, então você pode substituir esta linha por
Defina wrdDoc = wrdApp.Documents.Open (“B: \ My Documents \ WordDocs \ Doc1.docx”)
Esta linha abre um documento do Word existente que foi salvo no local especificado.
Com wrdDoc… .End With
Este é o nosso loop “With” que funcionará inteiramente com o objeto wrdDoc. Depois de abrir este loop, não é necessário repetir o texto “wrdDoc” novamente neste loop. Você pode começar diretamente com o ponto (“.”) Antes de qualquer objeto relacionado ao wrdDoc. Este loop termina com o Terminar com demonstração. Uma vez que a instrução End With foi inserida, você não pode se referir aos objetos após wrdDoc apenas com o “.”.
Para i = 1 a 100
.Content.InsertAfter “Aqui está um exemplo de linha de teste #” e i
.Content.InsertParagraphAfter
Proximo eu
Este é o loop “For”. Ele aumenta de 1 a 100 e, a cada incremento, insere uma linha com o texto “Aqui está um exemplo de linha de teste #” e adiciona o número do incremento. Em seguida, ele insere uma quebra de linha / quebra de parágrafo para que o próximo incremento apareça na próxima linha, como um novo parágrafo.
Portanto, este processo será repetido 100 vezes, uma vez que os estados do loop for Para i = 1 a 100. Esta é a saída que você obterá -
If Dir (“B: \ Test \ MyNewWordDoc.Docx”) “” Então Mate “B: \ Test \ MyNewWordDoc.docx”
.SaveAs (“B: \ Test \ MyNewWordDoc.docx”)
.Fechar
Assim que o loop “For” for concluído, o código verificará se o arquivo MyNewWordDoc.docx existe. Em caso afirmativo, ele o excluirá. Em seguida, ele salvará o novo arquivo com o mesmo nome e fechará o arquivo.
wrdApp.Quit
Definir wrdDoc = Nada
Definir wrdApp = Nothing
A palavra aplicação é fechada e então os 2 objetos que foram criados serão liberados ou colocados em “Nada”, para que a memória ocupada por estes objetos seja liberada. Este é o código completo que cuida de copiar o conteúdo do Excel para o Word.