VBA - Ler arquivo de texto linha por linha

Este tutorial demonstrará como ler o conteúdo de arquivos de texto linha por linha com o VBA.

Podemos ler o arquivo de texto como um arquivo inteiro ou linha por linha.

Ler arquivo de texto linha por linha

O texto em um arquivo de texto geralmente é composto de várias linhas, separadas por delimitadores. Podem ser uma vírgula (“,”), uma vírgula com espaço (“,“), um ponto e vírgula (“;”), um ponto e vírgula com espaço (“;“), um espaço (““), uma tabulação (vbTab ) ou, em casos raros, qualquer outro caractere, como um til (~). As linhas normalmente são separadas por uma quebra de linha (vbCRLF).

A maneira mais fácil de ler um arquivo de texto linha por linha em nossa planilha em VBA é selecionar a primeira célula onde queremos que o texto seja colocado e, em seguida, executar o seguinte código:

1234567891011 Sub ReadFile ()Dim strFile As String, strLine As StringstrFile = "C: \ Test \ TestFile.txt"Abra strFile para entrada como # 1Faça até EOF (1)Linha de entrada # 1, strLineActiveCell = strLineActiveCell.Offset (1, 0) .SelecionarCicloFechar # 1End Sub

Isso colocará cada linha do arquivo de texto em uma única célula no Excel.

Também podemos ler um arquivo de texto em VBA usando o FileSystemObject. No código a seguir, usamos a vinculação tardia com o objeto do sistema de arquivos. Você também pode criar uma referência a ele em seu projeto VBA. Veja aqui para mais informações.

123456789101112131415 Sub ReadTextFile ()Dim strLine As StringDim FSO como objetoDim TSO As ObjectDefina FSO = CreateObject ("Scripting.FileSystemObject")Defina TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Do While Not TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset (1, 0) .SelecionarCicloTSO.CloseDefinir TSO = NadaDefinir FSO = NadaEnd Sub

Podemos criar um loop um pouco mais complicado se quisermos separar as linhas em células por seus delimitadores. Aqui, usamos a vinculação inicial no código e declaramos o objeto do sistema de arquivos.

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators ()Dim StrLine As StringDim FSO As New FileSystemObjectDim TSO As ObjectDim StrLineElements As VariantDim Index As LongDim i enquantoDim Delimiter As StringDefina FSO = CreateObject ("Scripting.FileSystemObject")Defina TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Delimitador = ","Índice = 1Fazer enquanto TSO.AtEndOfStream = FalseStrLine = TSO.ReadLineStrLineElements = Split (StrLine, Delimiter)Para i = LBound (StrLineElements) para UBound (StrLineElements)Células (índice, i + 1) .Value = StrLineElements (i)Proximo euÍndice = Índice + 1CicloTSO.CloseDefinir TSO = NadaDefinir FSO = NadaEnd Sub

Isso resultará na separação das linhas em células individuais no Excel, conforme o gráfico abaixo.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave