Найти строку в ячейке с помощью VBA

Я сводил меня с ума этим целый день, искал все выше и ниже, и, вероятно, я пытаюсь быть слишком милым, поэтому я полностью застрял.

Я пытаюсь запустить простой, если тогда

Если ячейка содержит «%» Мне бы хотелось сделать одно, а если нет, то другое. По причинам, которые я не понимаю, я не могу заставить его работать. Я явно взял пару идей из других мест, но все еще не могу заставить их работать.

Сложные факторы - я не хочу запускать это для всего столбца, только для таблицы, поэтому он встроен в большую подпрограмму с использованием лотов или относительных ActiveCells. Я никогда не знаю, где в столбце «А» я столкнусь с & quot;% Change & quot; поэтому диапазон всегда должен быть переменным. Я хочу, чтобы VBA / VBE делал что-то другое, когда сталкивался с ячейкой с & quot;% & quot; в этом. ТАК

Вот как выглядят необработанные данные

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

Но когда я запускаю следующее, он застревает в плохом цикле, где он должен был вытолкнуть в «Если тогда» в отличие от «остального» часть саб.

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

Спасибо за помощь, спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос