You don't need to select or activate ranges or sheets in your code, the only purpose those functions serve is to make your code slower.
Personally I would use Range.Find over calling Vlookup, something like.
Option Explicit
Sub RetrieveData()
Dim wbDash As Workbook 'workbook where the data is to be pasted
Dim wbData As Workbook 'workbook from where the data is to copied
Dim c As Range, rng As Range, rfound As Range
'set to the current active workbook to Dashboard
Set wbDash = ActiveWorkbook
'Setting data sheet
Set wbData = Workbooks.Open("C:\Users\673157897\Documents\Pro Fees Dash Board\Copy of Data.xls")
Set rng = wbData.Worksheets("Sheet1").Range("A2:A7")
With Workbooks("Copy of Dash Board Shell").Sheets("Data")
' Selects the first cell to check
For Each c In .Range("A3", .Cells(Rows.Count, "A").End(xlUp).Row)
Set rfound = rng.Find(what:=c, after:=rng(1), LookIn:=xlValues, lookat:=xlWhole)
If Not rfound Is Nothing Then
c.Offset(0, 1) = rfound.Offset(0, 1)
Else
c.Offset(0, 1) = "N/A"
End If
Next
End With
wbData.Close (False)
End Sub
Bookmarks