Arquivo de texto de gravação 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 de 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 em 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 do arquivo Excel para o 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 maneira de escrever o código, deixe-me explicar como abrir o arquivo de texto usando uma instrução open.

Sintaxe de arquivo de texto aberto

Abra [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. Desta forma, podemos atribuir o número do arquivo exclusivo sem qualquer tipo de valores duplicados.

Você pode baixar este modelo de arquivo de texto de gravação VBA aqui - Modelo de arquivo de texto de gravação VBA

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 chamado “Hello.txt” no armazenamento do 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, declarar 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 um nome de arquivo ao caminho do 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 um número de arquivo exclusivo.

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. Conforme expliquei, precisamos usar a instrução OPEN para abrir o arquivo de texto.

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

Uma vez que o arquivo é 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 Files \ VBA File \ Hello.txt" 'Altere o caminho de acordo com seu requisito FileNumber = FreeFile Abrir caminho para saída como FileNumber Print #FileNumber, " Bem-vindo "Print #FileNumber," para "Print #FileNumber," VBA "End Sub 

Primeiro, precisamos mencionar o número do arquivo (aqui atribuímos o arquivo por meio da variável “FileNumber”), então precisamos adicionar o conteúdo que queremos adicionar a um arquivo de texto.

Etapa 7: Salvar e fechar o arquivo de texto

Uma vez que o conteúdo é escrito em um arquivo de texto, precisamos salvar e fechar o arquivo de texto.

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 Abrir caminho para saída como FileNumber Print #FileNumber, " Bem-vindo "Print #FileNumber," para "Print #FileNumber," VBA "Fechar FileNumber End Sub 

Agora, rode o código assim manualmente ou através da tecla de atalho do excel F5, ele escreverá o conteúdo mencionado no arquivo texto mencionado.

Exemplo # 2

Agora veremos como escrever os dados da planilha do Excel em um arquivo de texto.

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 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 Files\VBA File\Hello.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 

So, run the code using the F5 key or manually then, it will copy the data like the below.