Ich muss eine Datenzeile aus einer Excel-Tabelle extrahieren und in ein anderes Blatt übertragen. Ich muss nach einer Reihe von Strichen (- - - - -) suchen und dann die Datenzeile extrahieren, die sich zwei Zeilen unter den Strichen befindet.
Antwort1
Excel-Suche Syntax suchen
Dim rFound As Bereich
Wobei „Ausdruck“ ein beliebiges gültiges Bereichsobjekt ist, z. B. Bereich(„A1:A100“), Spalten(2) usw. Außerdem wird immer dann ein Bereichsobjekt zurückgegeben, wenn wir die Suchmethode verwenden.
Ausdruck.Suchen(Was, Nach, SuchenIn, SuchenAt, Suchreihenfolge, Suchrichtung, Groß-/Kleinschreibung beachten, Byte-Angabe beachten, Suchformat)
Dim rFound As Range On Error Fortsetzen Weiter
With ActiveWorkbook.ActiveSheet
Set rFound = .Columns(1).Find(What:="- - - - -", After:=.Cells(1, 1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
On Error GoTo 0
If Not rFound Is Nothing Then
Match = rFound.Address
MsgBox (rFound.Offset(2, 0))
End If
End With
Antwort2
Ich würde hierfür das Power Query Add-In verwenden. Es kann Daten aus Excel-Tabellen lesen.
Ich würde 2 Abfragen erstellen. Die erste würde eine Indexspalte (Zeilennummer) hinzufügen und dann nach den Zeilen mit Bindestrichen filtern. Ich würde dann eine einfache berechnete Spalte hinzufügen: [Index] + 2. Diese Abfrage muss keine Tabelle ausgeben.
Die zweite Abfrage würde mit der Basistabelle beginnen und dann mit der ersten Abfrage unter Verwendung der Spalte „[Index] + 2“ und einem Join-Typ von „inner“ (nur Übereinstimmungen behalten) zusammengeführt werden. Diese Abfrage würde eine neue Tabelle in Excel ausgeben.
Sie könnten fast alles davon erstellen, indem Sie einfach in der Power Query-Benutzeroberfläche herumklicken. Die benötigte Formel wäre sehr einfach: [Index] + 2
.