Findet eine Zeichenfolge innerhalb einer Zelle mit VBA

Ich hätte fahren mich verrückt mit dieser für einen Tag, suchte hoch und niedrig, und werde wohl versuchen, zu nett zu sein also bin völlig stecken.

Ich versuche zu laufen, eine einfache wenn-dann -

Wenn eine Zelle enthält "%" würde ich es mögen, eine Sache zu tun, und wenn nicht die andere. Aus Gründen, die ich nicht verstehe kann ich es nicht zu funktionieren. Ich habe eindeutig ein paar Ideen von anderswo, aber immer noch nicht bekommen kann es arbeiten.

Komplizierenden Faktoren - möchte ich nicht führen dies auf die ganze Spalte, nur ein Tisch, also es ist eingebettet in einen größeren sub mit viel oder relativ ActiveCells. Ich weiß nie, wo Sie in die A-Säule werde ich in die " Veränderung in%", so dass der Bereich muss immer variabel sein. Ich möchte VBA/VBE, etwas anderes zu tun, wenn es auf eine Zelle mit dem "%". SO

Hier ist, was die raw Daten Aussehen

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 er bleibt stecken in einer schlechten Schleife, wo es haben sollte, zog in der "Wenn, Dann" als Gegensatz zu den "Else" - Teil der sub.

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 ist willkommen, danke!

InformationsquelleAutor Tommy Z | 2012-06-05

Schreibe einen Kommentar