Encontre vários valores de uma planilha entre vários arquivos .txt

Encontre vários valores de uma planilha entre vários arquivos .txt

Preciso encontrar 60 valores exclusivos entre 17 arquivos .txt. Geralmente é uma simples "localização" e cópia, quando recebo os valores um ou dois de cada vez, o que obviamente não vai funcionar para mim com uma lista tão grande.

A planilha tem cerca de 60 números de contas. Preciso localizar cada número de conta em um dos 17 arquivos .txt, para poder copiar essa linha da conta em outro arquivo .txt para edição/conclusão. Os arquivos .txt estão em um arquivo FTP, então tenho que ter cuidado para não alterar os arquivos .txt, embora eu possa copiá-los para o Excel, se necessário.

Eu sei que existem funções de pesquisa, mas ainda não estou muito familiarizado com elas e não tenho certeza exatamente do que preciso. Eu apreciaria alguma ajuda com este! Obrigado, L.

Responder1

Eu criei um script que você pode achar útil.

Crie uma pasta chamadacontase salve o script lá com extensão .vbs.

Crie uma pasta na pasta de contas chamadaentrada. copie todos os arquivos de contas a serem pesquisados ​​para a pasta de entrada, todos devem ser arquivos .txt ou serão ignorados.

Crie um arquivo chamadonúmeros_de_conta.txte liste cada número de conta em uma linha separada. O script deve abrir cada arquivo, ler uma linha e compará-la com cada número de conta. Os resultados da pesquisa são armazenados emcontas_encontradas.txt. Fornecido sem garantia, use por sua conta e risco. Espero que ajude.

' find all occurrances of an account number in a number of files
' place all account txt files into input folder
' accounts_found.txt is created if it is missing
' by 'Robert' 2017 - hereby placed into the Public Domain

' set some Constants here
Const ForRead      = 1
Const ForWrite     = 2
Const ForAppend    = 8
Const OverWrite    = True
Const NoOverWrite  = False

Dim acct_num_list(100) ' max records for the array, num_accounts variable counts them anyway

inputFolderName    = "input\"               ' the folder where the txt files are
outputFileName     = "accounts_found.txt"   ' the output file for matched records
accountsFileName   = "account_numbers.txt"  ' the file which contains account numbers to search for

' = = = Start of Code = = =

Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")

Set outFile = objFSO.OpenTextFile(outputFileName, ForWrite, OverWrite)

Set objInputFolder = objFSO.GetFolder(inputFolderName)
Set sFileCollection = objInputFolder.Files

Set accounts_file = objFSO.OpenTextFile(accountsFileName, ForRead)

num_accounts = 0
DO While Not accounts_file.AtEndOfStream
    acct_num_list(num_accounts) = accounts_file.ReadLine
    num_accounts = num_accounts + 1
Loop

accounts_file.Close

For Each objFile in sFileCollection
    If UCASE(objFSO.GetExtensionName(objFile)) = "TXT" then
        Set sourceFile = objFSO.OpenTextFile(inputFolderName & objFile.Name, ForRead)
        Do While Not sourceFile.AtEndOfStream
            curr_line = sourceFile.ReadLine
            For counter = 0 to num_accounts
                if instr(1, curr_line, acct_num_list(counter),1) >= 1 then
                    outFile.WriteLine curr_line
            End If
            Next    
       Loop 
    End If    
Next
' = = = End Of File = = =

informação relacionada