Arquivo de texto de leitura VBA (leitura, análise e importação)

Este tutorial demonstrará como ler o conteúdo de arquivos de texto e colá-lo em planilhas com o VBA.

Ler o conteúdo do arquivo de texto na planilha

A maneira mais simples de ler o conteúdo de um arquivo de texto é copiá-lo para a célula de uma planilha.

123456789101112 Sub FSOPasteTextFileContent ()Dim FSO As New FileSystemObjectDefina FSO = CreateObject ("Scripting.FileSystemObject")Set FileToRead = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForReading) 'adicione aqui o caminho do seu arquivo de textoTextString = FileToRead.ReadAllFileToRead.CloseThisWorkbook.Sheets (1) .Range ("A1"). Value = TextString 'você pode especificar a planilha e a célula onde colar o conteúdo do arquivo de textoEnd Sub

O código acima usa o FileSystemObject. Para usá-lo, você precisará definir uma referência para a biblioteca de tempo de execução do script VB. Veja aqui para mais informações.

Sem usar FileSystemObject, você pode colar o conteúdo do seu arquivo de texto com o código abaixo. Se o seu arquivo de texto contiver separador de linha, ele será colado linha por linha.

123456789101112 Sub PasteTextFileContent ()Dim wbExcel As Workbook, wbText As WorkbookDim wsExcel como planilhaDefinir wbExcel = ThisWorkbook 'especifica aqui em qual arquivo Excel o conteúdo do arquivo de texto deve ser coladoDefina wsExcel = wbExcel.Sheets (1) 'especifique aqui qual planilha usarSet wbText = Workbooks.Open ("C: \ Test \ TestFile.txt") 'adicione aqui o caminho do seu arquivo de textowbText.Sheets (1) .Cells.Copy wsExcel.CellswbText.Close SaveChanges: = FalseEnd Sub

Ler o conteúdo do arquivo de texto linha por linha, coluna por coluna

Seu arquivo de texto pode ter várias linhas e vários elementos listados nas linhas separados por vírgula, ponto e vírgula, tabulação, espaço, etc … Para ler e colar o conteúdo do arquivo de texto corretamente, você pode precisar deste código abaixo:

1234567891011121314151617181920212223242526 Sub PasteTextFileContentWithSeparators ()Dim StrLine As StringDim FSO As New FileSystemObjectDim TSO as ObjectDim StrLineElements As VariantDim Index As LongDim i enquantoDim Delimitador como StringDefina FSO = CreateObject ("Scripting.FileSystemObject")Defina TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Delimitador = "," 'o delimitador que é usado em seu arquivo de textoÍndice = 1Fazer enquanto TSO.AtEndOfStream = FalseStrLine = TSO.ReadLineStrLineElements = Split (StrLine, Delimiter)Para i = LBound (StrLineElements) para UBound (StrLineElements)Cells (Index, i + 1) .Value = StrLineElements (i) 'este código começará a colar o conteúdo do arquivo de texto da célula A1 (Cell (1,1)) da planilha ativaProximo euÍndice = Índice + 1CicloTSO.CloseEnd Sub

O delimitador usado em seu arquivo de texto pode ser vírgula (“,”), vírgula com espaço (“,“), ponto e vírgula (“;”), ponto e vírgula com espaço (“;“), espaço (““), tabulação (mude então Delimitador = vbTab) ou em casos raros, qualquer outro caractere.

Ler arquivos de texto em matrizes

Se você precisa ler o conteúdo do seu arquivo de texto em uma matriz e colá-lo linha por linha, coluna por coluna em sua planilha, você precisará deste código abaixo:

12345678910111213141516171819202122232425262728293031323334 Sub ReadDelimitedTextFileIntoArray ()Dim Delimiter As StringDim TextFile As IntegerDim FilePath As StringDim FileContent As StringDim LineArray () As StringDim DataArray () As StringDim TempArray () como stringDim rw As Long, col As LongDelimiter = vbTab 'o delimitador que é usado em seu arquivo de textoFilePath = "C: \ Test \ TestFileTab.txt"rw = 1TextFile = FreeFileAbrir FilePath para entrada como TextFileFileContent = Input (LOF (TextFile), TextFile)Fechar TextFileLineArray () = Split (FileContent, vbNewLine) 'mude vbNewLine para vbCrLf ou vbLf dependendo do separador de linha que é usado em seu arquivo de textoPara x = LBound (LineArray) Para UBound (LineArray)If Len (Trim (LineArray (x))) 0 ThenTempArray = Split (LineArray (x), Delimitador)col = UBound (TempArray)ReDim Preserve DataArray (col, rw)Para y = LBound (TempArray) Para UBound (TempArray)DataArray (y, rw) = TempArray (y)Células (x + 1, y + 1) .Value = DataArray (y, rw) 'este código começará a colar o conteúdo do arquivo de texto da célula A1 (Cell (1,1)) da planilha ativaA seguirFim serw = rw + 1Próximo xEnd Sub

Os separadores de linha em seu arquivo de texto podem ser combinação de retorno de carro e alimentação de linha (Chr (13) + Chr (10)) ou alimentação de linha (Chr (10)). Use vbCrLf ou vbLf, de acordo. Se você não tiver certeza, use vbNewLine para indicar o separador de linha.

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

wave wave wave wave wave