Você vai querer usar o application.worbook.open método .
Sub Openfilemacro()
Dim myfile As String
myfile = "Path\to\file"
Application.Workbooks.Open Filename:=myfile
End Sub
Depois, você pode fazer referência entre as pastas de trabalho para comparar, basta especificar o WB e o WS, como você já fez.
Algo parecido com isso, mas adaptado para você -
Sub Openfilemacro()
Dim myfile As String
Dim workbookA As Workbook
Dim workbookB As Workbook
myfile = "Path\to\file"
workbookA = ThisWorkbook
workbookB = Application.Workbooks.Open(Filename:=myfile)
Dim c As Range
For Each c In Workbooks(workbookA).Range("A:A")
If c = "" Then Exit Sub
'search workbookB for c.value
'do stuff
Next
End Sub
Uma nota rápida - você provavelmente evitará usar as propriedades .select
e activecell
, pois elas podem se tornar confusas. Tente sempre fazer referência à célula real e não há necessidade de selecionar uma célula. Talvez você precise de um workbook.activate
, mas em geral, é menos do que desejável precisar selecionar qualquer coisa ou fazer referência a uma célula ativa, especialmente com um for loop
já.