HintergrundExtrakt String aus txt-Datei
Ich habe einen Code in Excel VBA erstellen, die eine Textdatei öffnet und schreibt einen bestimmten Teil von einigen seiner Saiten beginnend mit „: 60F“ in eine bestimmte Zelle das Excel-Blatt.
Dieser Teil des Codes funktioniert bereits.
Ausgabe
aber ich bin mit dem zweiten Teil der Aufgabe zu kämpfen. Ich muss in eine andere Zelle des Excel-Dokuments einen Teil einer bestimmten Zeichenfolge schreiben, die mit ": 61:" beginnt.
Das Problem ist, dass es viele Strings in der Textdatei gibt, die mit "61:" beginnen, aber ich brauche die, die direkt nach dem String beginnt, der mit "60F:" beginnt.
Ich wäre sehr dankbar, wenn Sie mir dabei helfen könnten. Vielen Dank im Voraus!
Mit freundlichen Grüßen
Hier ist der Code die ich bisher geschrieben:
Code
Function extract_opening_balance(ByVal filename As String, subfield_61 As String) As String
Dim i As Integer
Dim pos1 As Integer
strPath = ActiveWorkbook.Path & "\Data of Reporting Month\"
filename = strPath & "MT940_T2_" & main_menu.cbo_Year & Left(main_menu.cbo_Month, 2) & Format(day(CDate(Right(main_menu.lst_Date.List(i), 10))), "00") & ".txt"
Open filename For Input As #1
For i = 3 To 13
Do Until EOF(1)
Line Input #1, textline
If InStr(textline, ":60F:") > 0 Then
If InStr(textline, "EUR") = 13 And InStr(textline, 0) <> 16 Then
'For j = 1 To String(":60F:").Count
pos1 = InStr(subfield_61, "//") + 30
'time_str = Mid(subfield_61, pos1, 6)
'time_str = Mid(time_str, 1, 2) & ":" & Mid(time_str, 3, 2) & ":" & Mid(time_str, 5, 2)
Sheets("op_balance").Range("B" & i).Value = Mid(textline, 6, 1)
Sheets("op_balance").Range("C" & i).Value = Mid(textline, 16, 20)
Sheets("op_balance").Range("D" & i).Value = subfield_61
Sheets("op_balance").Range("E" & i).FormulaR1C1 = "=IF(RC[-3]=""D"",(-1)*RC[-2],RC[-2])"
'Next j
End If
End If
Loop
Next i
End Function
Wie groß ist die Textdatei? Kannst du eine kurze Auswahl von dem geben, was drin sein würde? – Comintern
[Suche] (https://msdn.microsoft.com/en-us/library/7af2feyt (v = vs.90) .aspx) und ye soll [Find] (https://msdn.microsoft.com/en -us/library/office/ff839746.aspx) – abraxascarab
Die [InStr-Funktion] (https://msdn.microsoft.com/en-us/library/8460tsh1.aspx) ermöglicht einen Ort, an dem Sie Ihre Suche starten können. Nimm die Position von ': 60F' (vielleicht in eine lange) auf und benutze sie als Ausgangspunkt, um nach': 61: 'zu suchen. – Jeeped