Пожалуйста, помогите мне узнать, где моя ошибка.

У меня есть строка 80/120 в ячейке A1, и я хочу создать переменную, заменить все символы перед "/" (включая "/") и поместить ее в ячейку B1.

Sub secondmacro()
Dim ReplaceSmth As Variant

ReplaceSmth = Cells(1, 1)
ReplaceSmth = Replace(ReplaceSmth, "*/", "")
Cells(1, 2) = ReplaceSmth

End Sub

Не могу понять, почему это ничего не меняет, и я получаю значение 80/120 в B1

LPChip дал мне отличную идею, как это сделать!

Я немного изменяю ваш код для удовлетворения моих потребностей:

Sub secondmacro()

 Dim ReplaceSmth As Variant, CellPosition As Integer

  ReplaceSmth = Cells(1, 1)
  CellPosition = InStr(1, ReplaceSmth, "/")


If CellPosition <> 0 Then Cells(1, 2) = Mid(ReplaceSmth, CellPosition + 1, Len(ReplaceSmth))

End Sub

Спасибо!

1 ответ1

1

Заменить не понимает подстановочные знаки. Он заменяет только буквальные тексты. Смотрите здесь для получения дополнительной справки о функции Заменить.

Вместо этого вам нужно сначала найти позицию первого /, затем получить текст и установить его в первой ячейке, затем повторить процесс, но для оставшегося текста, и установить его во второй ячейке.

Ваш макрос будет выглядеть примерно так:

Sub secondmacro()
    Dim ReplaceSmth As text, CellPosition as Integer

    ReplaceSmth = Cells(1, 1)
    CellPosition = InStr (1, ReplaceSmth, "/")

    If CellPosition > 1 then
        Cells(1, 1) = MID(ReplaceSmth, 1, CellPosition)
        Cells(1, 2) = MID(ReplaceSmth, CellPosition, len(ReplaceSmth)-CellPosition)
    end if

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .