VBA Write Text File - Grave dados do Excel em arquivos de texto usando código VBA

Excel VBA Write Text File

No VBA podemos abrir ou ler ou escrever um arquivo de texto, escrever um arquivo de texto significa os dados que temos em uma planilha do excel e queremos um arquivo de texto ou um arquivo de bloco de notas, existem dois métodos para fazer, um é por usando a propriedade do objeto File System do VBA e outra é usando o método Open and write no VBA.

Na maioria das empresas corporativas, uma vez que o relatório é finalizado, elas procuram fazer o upload do relatório para o banco de dados. Para fazer o upload para o banco de dados, eles usam o formato “Arquivos de texto” para atualizar o banco de dados. Normalmente copiamos os dados do Excel e os colamos em um arquivo de texto. A razão pela qual confiamos nos arquivos de texto é que eles são muito fáceis de trabalhar devido às suas formas leves e simples. Usando a codificação VBA, podemos automatizar a tarefa de copiar dados de um arquivo Excel para um arquivo de texto. Neste artigo, mostraremos como copiar ou gravar dados de um arquivo Excel em um arquivo de texto usando o código VBA.

Como gravar dados em arquivos de texto usando o VBA?

Gravar dados do Excel em texto é uma codificação complexa e requer um conhecimento muito bom de codificação VBA. Siga as etapas abaixo para escrever o código VBA para copiar dados do Excel para um arquivo de texto.

Antes de mostrar a você como escrever o código, deixe-me explicar como abrir o arquivo de texto usando uma instrução open.

Sintaxe de arquivo de texto aberto

Abrir (caminho do arquivo), para (modo), como (número do arquivo)

Caminho do arquivo: o caminho do arquivo que estamos tentando abrir no computador.

Modo: Modo é o controle que podemos ter sobre a abertura de arquivos de texto. Podemos ter três tipos de controle sobre o arquivo de texto.

  • Modo de entrada: sugere controle “ somente leitura ” do arquivo de texto de abertura. Se usarmos o “Modo de entrada”, não podemos fazer nada com o arquivo. Podemos apenas ler o conteúdo do arquivo de texto.
  • Modo de saída: Usando esta opção, podemos escrever o conteúdo nele. O ponto que precisamos lembrar aqui é que todos os dados existentes serão substituídos. Portanto, precisamos ter cuidado com a possível perda de dados antigos.
  • Modo Append: Este modo é completamente o oposto do Modo OutPut. Usando este método, podemos realmente gravar os novos dados no final dos dados existentes no arquivo.

Número do arquivo: contará o número do arquivo de texto de todos os arquivos de texto abertos. Isso reconhecerá os números dos arquivos abertos em valores inteiros de 1 a 511. Atribuir o número do arquivo é complicado e causa muita confusão. Para isso, podemos usar a função gratuita File.

Arquivo livre retorna o número exclusivo dos arquivos abertos. Dessa forma, podemos atribuir o número do arquivo exclusivo sem qualquer tipo de valores duplicados.

Exemplo 1

Siga as etapas abaixo para escrever o código para criar um novo arquivo de texto.

Suponha que você já tenha um arquivo de texto denominado “Hello.txt” no armazenamento do seu computador e mostraremos como gravar os dados nele.

Etapa 1: Declarar Variável

Declare a variável para conter o caminho do arquivo como String.

Código:

Sub TextFile_Example1 () Dim Path As String End Sub
Etapa 2: determinar o número do arquivo

Para determinar a qual número de arquivo estamos nos referindo, declare mais uma variável como Inteiro.

Código:

Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer End Sub
Etapa 3: Atribuir o caminho do arquivo

Agora, para a variável Path, atribua ao caminho do arquivo um nome de arquivo.

Código:

Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: Excel Files VBA File Hello.txt" 'Altere o caminho de acordo com seu requisito End Sub
Etapa 4: Atribuir função de arquivo grátis

Agora, para a variável Número do arquivo, atribua a função “Arquivo livre” para armazenar números de arquivo exclusivos.

Código:

Sub TextFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: Excel Files VBA File Hello.txt" 'Altere o caminho de acordo com seu requisito FileNumber = FreeFile End Sub
Etapa 5: Abra o arquivo de texto

Agora precisamos abrir o arquivo de texto para trabalhar com ele. Como expliquei, precisamos usar a instrução OPEN para abrir o arquivo de texto.


Etapa 6: use o método de impressão / gravação

Depois que o arquivo for aberto, precisamos escrever algo nele. Para escrever no arquivo de texto, precisamos usar o método “Write” ou “Print”.

Código:

Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = "D:Excel FilesVBA FileHello.txt" 'Change the path as per your requirement FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, "Welcome" Print #FileNumber, "to" Print #FileNumber, "VBA" End Sub

First, we need to mention the file number (here we have assigned the file through the “filenumber” variable), then we need to add the content we want to add to a text file.

Step 7: Save and Close Text File

Once the content is written in a text file, we need to save and close the text file.

Code:

Sub TextFile_Example1() Dim Path As String Dim FileNumber As Integer Path = "D:Excel FilesVBA FileHello.txt" 'Change the path as per your requirement FileNumber = FreeFile Open Path For Output As FileNumber Print #FileNumber, "Welcome" Print #FileNumber, "to" Print #FileNumber, "VBA" Close FileNumber End Sub

Now, run the code this manually or through shortcut excel key F5. It will write the mentioned content in the mentioned text file.

Example #2

Now we will see how to write the data of excel sheet to a text file.

For this example, I have created simple data in excel like below.

Step 1: With the continuation of the old example, define two more variables as Integer to find the last row and last column.

Code:

Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer End Sub

Step 2: Find the last used row and column in the worksheet.

Step 3: Now assign the file path and file number.

Step 4: Now, use the OPEN statement to open the text file.

Step 5: We need to loop through rows and columns, so declare two more variables as Integer.

Step 6: Now open Loop to loop through the row (For next loop in VBA)

Step 7: Now, to loop through columns, open one more loop inside the existing loop.

Step 8: We need to write the same line of data until it reaches the last column. So for this, apply the IF statement in VBA.

Step 9: Now, save and close the text file.

This code will write the details to a text file, but to open the text file after written, we need to use the below code.

Code:

Sub TextFile_Example2() Dim Path As String Dim FileNumber As Integer Dim LR As Integer Dim LC As Integer Dim k As Integer Dim i As Integer LR = Worksheets("Text").Cells(Rows.Count, 1).End(xlUp).Row LC = Worksheets("Text").Cells(1, Columns.Count).End(xlToLeft).Column Path = "D:Excel FilesVBA FileHello.txt" FileNumber = FreeFile Open Path For Output As FileNumber For k = 1 To LR For i = 1 To LC If i LC Then Print #FileNumber, Cells(i, k), Else Print #FileNumber, Cells(i, k) End If Next i Next k Close FileNumber Shell "notepad.exe " & Path, vbNormalFocus End Sub

Portanto, execute o código usando a tecla F5 ou manualmente. Em seguida, ele copiará os dados abaixo.

Artigos interessantes...