Suchen Sie mit VBA eine Zeichenfolge in einer Zelle

Ich habe mich einen Tag lang verrückt gemacht, hoch und tief gesucht und versuche wahrscheinlich, zu süß zu sein, also stecke ich total fest.

Ich versuche dann ein einfaches zu betreiben

Wenn eine Zelle "%" enthält, möchte ich, dass sie eine Sache macht, und wenn nicht eine andere. Aus Gründen, die ich nicht verstehe, kann ich es nicht zum Laufen bringen. Ich habe eindeutig ein paar Ideen von anderswo übernommen, kann sie aber immer noch nicht zum Laufen bringen.

Komplizierende Faktoren - Ich möchte dies nicht für die gesamte Spalte ausführen, sondern nur für eine Tabelle. Daher wird es mithilfe von Lots oder relativen ActiveCells in ein größeres Sub eingebettet. Ich weiß nie, wo ich in der A-Spalte auf "% Change" stoßen werde, daher muss der Bereich immer variabel sein. Ich möchte, dass VBA / VBE etwas anderes macht, wenn es auf eine Zelle mit dem "%" darin stößt. SO

So sehen die Rohdaten aus

Initial Value (6/30/06)

Value (12/31/06)

Net Additions (9/30/07)

Withdrawal (12/07)

Value (12/31/07)

Withdrawal (2008)

Value (12/31/08)

Addition (8/26/09)

Value (12/31/09)

Value (12/31/10)

Value (12/30/11)

Value (3/31/12)

% Change 1st Quarter

% Change Since Inception

Aber wenn ich das Folgende laufen lasse, bleibt es in einer schlechten Schleife stecken, wo es in das "Wenn Dann" herausgezogen werden sollte, im Gegensatz zum "Anderen" Teil des U-Boots.

Sub IfTest()
 'This should split the information in a table up into cells
 Dim Splitter() As String
 Dim LenValue As Integer     'Gives the number of characters in date string
 Dim LeftValue As Integer    'One less than the LenValue to drop the ")"
 Dim rng As Range, cell As Range
 Set rng = ActiveCell

Do While ActiveCell.Value <> Empty
    If InStr(rng, "%") = True Then
        ActiveCell.Offset(0, 0).Select
        Splitter = Split(ActiveCell.Value, "% Change")
        ActiveCell.Offset(0, 10).Select
        ActiveCell.Value = Splitter(1)
        ActiveCell.Offset(0, -1).Select
        ActiveCell.Value = "% Change"
        ActiveCell.Offset(1, -9).Select
    Else
        ActiveCell.Offset(0, 0).Select
        Splitter = Split(ActiveCell.Value, "(")
        ActiveCell.Offset(0, 9).Select
        ActiveCell.Value = Splitter(0)
        ActiveCell.Offset(0, 1).Select
        LenValue = Len(Splitter(1))
        LeftValue = LenValue - 1
        ActiveCell.Value = Left(Splitter(1), LeftValue)
        ActiveCell.Offset(1, -10).Select
    End If
Loop
End Sub

Alle Hilfe wird geschätzt, danke!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage