First, look up all ABC_* values in the workbook, then record addresses in a dictionary. After extracting the ABC_ strings from the column using a regular expression, replace the extracted strings with addresses using the dictionary.
Sub FindStringInOtherWorkbook()
Const FOLDER = "" ' "C:\path\to\"
Dim wb As Workbook, ws As Worksheet
Dim dict As Object
Dim rng As Range, c As Range, fnd As Range, first As Range
Dim f As String, n As Long
' dictionary
Set dict = CreateObject("Scripting.Dictionary")
'Open the second workbook and extract ABC_ addresses
Set wb = Workbooks.Open(FOLDER & "Wrkbook.xlsx")
For Each ws In wb.Sheets
With ws.UsedRange
Set fnd = .Find("ABC_*", LookIn:=xlValues, lookAT:=xlWhole)
If Not fnd Is Nothing Then
Do
Set first = fnd
'Debug.Print fnd.Value, fnd.Address(0, 0, xlA1, True)
dict.Add fnd.Value, fnd.Address(0, 0, xlA1, True)
Set fnd = .FindNext(fnd)
Loop Until fnd.Address = first.Address
End If
End With
Next
' regular expression
Dim regEx As Object, m As Object
Set regEx = CreateObject("VBScript.RegExp")
With regEx
.Global = True
.MultiLine = False
.IgnoreCase = True
.Pattern = "(ABC_.*?\d{7})"
End With
'Set the range to search in the active sheet
Set rng = ActiveSheet.UsedRange.Columns("A")
For Each c In rng.Cells
f = c.Formula
If regEx.test(f) Then
For Each m In regEx.Execute(f)
s = m.submatches(0)
If dict.exists(s) Then
f = Replace(f, s, dict(s))
n = n + 1
End If
Next
c.Formula = f
End If
Next
MsgBox n & " replacements made", vbInformation
'Close the second workbook
wb.Close
End Sub