
Ich muss 60 eindeutige Werte in 17 TXT-Dateien finden. Normalerweise ist das ein einfaches „Suchen“ und Kopieren, wenn ich die Werte einzeln oder paarweise erhalte, was bei einer so großen Liste offensichtlich nicht funktioniert.
Die Tabelle enthält etwa 60 Kontonummern. Ich muss jede Kontonummer in einer von 17 TXT-Dateien finden, damit ich diese Kontozeile zum Bearbeiten/Vervollständigen in eine andere TXT-Datei kopieren kann. Die TXT-Dateien befinden sich in einem FTP-Archiv, daher muss ich darauf achten, die TXT-Dateien überhaupt nicht zu ändern, obwohl ich sie bei Bedarf nach Excel kopieren könnte.
Ich weiß, dass es Nachschlagefunktionen gibt, aber ich bin noch nicht sehr vertraut damit und nicht sicher, was ich genau brauche. Ich wäre für etwas Hilfe bei dieser Funktion dankbar! Danke, L
Antwort1
Ich habe ein Skript zusammengeschustert, das Sie vielleicht hilfreich finden.
Erstellen Sie einen Ordner namensKontenund speichern Sie das Skript dort mit der Erweiterung .vbs.
Erstellen Sie im Kontenordner einen Ordner mit dem NamenEingang. kopieren Sie alle zu durchsuchenden Kontodateien in den Eingabeordner. Es sollten alles TXT-Dateien sein, sonst werden sie ignoriert.
Erstellen Sie eine Datei namensKontonummern.txtund listen Sie dort jede Kontonummer in einer separaten Zeile auf. Das Skript sollte jede Datei öffnen, eine Zeile lesen und sie mit jeder Kontonummer vergleichen. Die Ergebnisse der Suche werden gespeichert inKonten gefunden.txt. Wird ohne Garantie geliefert, Verwendung auf eigene Gefahr. Hoffe, es hilft.
' 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 = = =