Try this variation on Bernie's function. If a worksheetname has spaces, you can specify a delimiter, for example "|"
Option Explicit
Function ReplaceReferences(r As Range, Optional delim As String = " ") As String
' Call using, for example, =ReplaceReferences(B1)
' Call using, for example, =ReplaceReferences(B1," ")
' Call using, for example, =ReplaceReferences(B1,"|")
Dim f As String
Dim strF As String
Dim i As Integer
Dim strR As String
Dim v As Variant
strR = "+-*&^=><,/"
strF = r.Formula
f = r.Formula
For i = 1 To Len(strR)
f = Replace(f, Mid(strR, i, 1), delim)
Next i
v = Split(f, delim)
For i = LBound(v) To UBound(v)
If InStr(v(i), "!") > 0 Then
strF = Replace(strF, v(i), Evaluate("=" & v(i)))
End If
Next i
For i = LBound(v) To UBound(v)
If InStr(v(i), ":") > 0 Then
strF = Replace(strF, v(i), Evaluate("=" & v(i)))
End If
Next i
For i = LBound(v) To UBound(v)
If Len(v(i)) > 1 Then
strF = Replace(strF, v(i), Evaluate("=" & v(i)))
End If
Next i
ReplaceReferences = "'" & Right(strF, Len(strF) - 1)
End Function
Bookmarks