Сначала сделайте копию вашего файла, на случай, если что-то пойдет не так.
Затем создайте следующую подпрограмму VBA:
Sub StillLearning1()
For Each c In Range("A1:Z100")
If Not c.HasFormula Then
temp = WorksheetFunction.Substitute(c.Value, "*", "")
If Left(temp, 1) = "=" Or Left(temp, 1) = "'" Then
temp = "'" & temp
End If
c.Value = temp
End If
Next c
End Sub
См. Как добавить VBA в MS Office? для получения общей информации о том, как использовать VBA в Excel и других приложениях Microsoft Office.
StillLearning1
- это просто произвольное имя подпрограммы; используйте любое имя, которое вы хотите.
Измените A1:Z100
на диапазон, в котором вы хотите произвести замену.
Надеюсь, все остальное само за себя
For Each c
... Next c
- это цикл, который выполняется 2600 раз (для диапазона выборки A1:Z100
; 26 столбцов × 100 строк), причем c
идет в каждую ячейку в этом диапазоне.
c.HasFormula
- это логическое значение, которое сообщает, содержит ли ячейка c
формулу.
Это немного более надежно, чем проверка того, является ли первый символ =
, потому что ячейка, содержащая '===
является строковым (текстовым) значением, но будет выглядеть как ===
, и поэтому будет казаться, что начинается с =
.
Если ячейка содержит формулу; оставить это в покое.
Если он не содержит формулу, сделайте замену.
- Проверьте результат замены, чтобы увидеть, начинается ли он с
=
или '
.
Если это произойдет, назначение его непосредственно ячейке приведет к тому, что Excel будет интерпретировать этот первый символ нежелательным образом, поэтому защитите его, добавив '
.
Затем запустите подпрограмму.