Finding Index der Zeichenfolge in String-Array
Dieses Programm entfernt eine Zeichenfolge aus einem Array zu einem neuen Blatt. Ich finde die Zeichenfolge 'Hallo' oder 'Tschüss', aber ich möchte auch die Zeichenfolge im Index vor jeder dieser Zeichenfolgen. Die Zeichenfolge vor "Hallo" oder "Tschüss" wird nicht immer die gleiche sein, also wie kann ich die Index() Funktion verwenden?
Sub SplitWithFormat()
Dim R As Range, C As Range
Dim i As Long, V As Variant
Dim varHorizArray As Variant
Dim rge As Range
Dim intCol As Integer
Set R = Range("d1", Cells(Rows.Count, "d").End(xlUp))
For Each C In R
With C
.TextToColumns Destination:=.Range("AD1"), DataType:=xlDelimited, _
consecutivedelimiter:=True, Tab:=False, semicolon:=True, comma:=False, _
Space:=True, other:=True, Otherchar:=vbLf
Set rge = Selection
varHorizArray = rge
.Copy
Range(.Range("AD1"), Cells(.Row, Columns.Count).End(xlToLeft)).PasteSpecial xlPasteFormats
End With
Next C
Application.CutCopyMode = False
For intCol = LBound(varHorizArray, 2) To UBound(varHorizArray, 2)
Debug.Print varHorizArray(1, intCol)
Next intCol
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
varHorizArray = Array("bye","hello")
Set NewSh = Worksheets.Add
With Sheets("Sheet2").Range("AD1:AZ100")
Rcount = 0
For i = LBound(varHorizArray) To UBound(varHorizArray)
Set Rng = .find(What:=varHorizArray(i), _
After:=.Cells(.Cells.Count), _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
FirstAddress = Rng.Address
Do
Rcount = Rcount + 1
Rng.Copy NewSh.Range("A" & Rcount)
NewSh.Range("A" & Rcount).Value = Rng.Value
Set Rng = .FindNext(Rng)
Loop While Not Rng Is Nothing And Rng.Address <> FirstAddress
End If
Next i
End With
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Ich bin nicht sicher, ich verstehe. Können Sie sowohl die aktuellen als auch die erwarteten Ergebnisse einbeziehen? –
'dim s als String: s = left (1, Bereich (" d1 "). Value,", hallo ", vbtextcompare))' sollte es tun. Siehe [InStr-Funktion] (https://msdn.microsoft.com/en-us/library/8460tsh1.aspx), um die Position eines Suchbegriffs innerhalb einer längeren Zeichenfolge zurückzugeben. – Jeeped
Ich habe die Frage @ Zieldaten aktualisiert. Das erwartete Ergebnis wäre der Name, der vor der Zeichenfolge auf dem neuen Blatt steht. – johndoe253