VBA хочет странного «=» после функции замены в операторе If

#excel #vba

Вопрос:

Почему он хочет знак «=» после функции замены?

 For Each cel In Application.Selection.Cells
    scell = cel.Value
    For c = 1 To Len(scell)
        If Not is_number(Mid(scell, c, 1), c) Then
        Replace(scell, Mid(scell, c, 1),"")
        End If
               
    Next
Next
 

Комментарии:

1. Replace является функцией — она возвращает строку. Вы должны назначить его переменной или чему-то в этом роде. x = Replace() docs.microsoft.com/en-us/office/vba/language/reference/…

2. О, хорошо, большое тебе спасибо

3. Существуют лучшие способы извлечения только числовой части строки, например, регулярное выражение.

4. И этот метод не будет работать с персонажами спина к спине. Например 1ab2cd , вернется 1b2d , потому что b, который находится на 3-м месте, станет 2-м, когда a будет удален. Если вы настаиваете на использовании этого метода, выполните цикл в обратном направлении.

5. Я делаю это для практики, чтобы изучить циклы, операторы if, функции и так далее