Если апостроф находится в самом начале строки, он является символом префикса и частью свойства форматирования строки, а не свойства value. Он сообщает Excel, что значение следует рассматривать как текст.
В этом случае необходимо очистить формат в дополнение к замене значения.
Также обратите внимание, что если у вас нет именованного формула или диапазон, определенные на вашем листе, код не будет работать, возвращая ошибку приложения (если вы не определите формат как текст).
Код может выглядеть примерно так:
Option Explicit
Sub due()
Dim R As Range, C As Range
Dim FirstAddress As String
Set R = Range("A1:Z100") 'or whatever
With R
Set C = Cells.Find(What:=".gcmd", Lookat:=xlPart, _
LookIn:=xlFormulas, searchorder:=xlByRows, MatchCase:=False)
If Not C Is Nothing Then
FirstAddress = C.Address
If C.PrefixCharacter = "'" Then
C.ClearFormats
C.NumberFormat = "@" 'omit if `gcmd` is a valid name
End If
C.Value = "=" & Mid(C, 2)
Do
Set C = .FindNext(C)
If C Is Nothing Then Exit Do
If C.Address = FirstAddress Then Exit Do
'Note that you don't really have to test for the apostrophe.
'You could just ClearFormats whether it is present or not.
If C.PrefixCharacter = "'" Then
C.ClearFormats
C.NumberFormat = "@" 'omit if `gcmd` is a valid name
End If
C.Value = "=" & Mid(C, 2)
Loop
End If
End With
End Sub