Give this a try
Sub Test()
Dim wbSource As Workbook
Dim wbTarget As Workbook
Dim ws As Worksheet
Dim Dte As Long, i As Long, x As Long
Dim r As Range
Dim chk As Boolean
Dim FName As String
Dim Days, Shts
Days = Array(1, 7)
Shts = Array("IDP- Yesterday", "IDP- last week")
Set wbTarget = ThisWorkbook
For i = 0 To 1
x = Days(i)
FName = Format(Date - x, "mmmm") & " " & Year(Date - x) & " - testdata.xlsb"
On Error Resume Next
Set wbSource = Workbooks(FName)
If Err Then
If Month(Date) = Month(Date - x) Then
Set wbSource = Workbooks.Open("C:\VBAX\" & FName)
Else
Set wbSource = Workbooks.Open("C:\VBAX\Archive\" & FName)
End If
chk = True
End If
Set ws = wbSource.Sheets(Day(Date - x))
Set r = ws.Range("BS8").Resize(48, 6)
wbTarget.Sheets(Shts(i)).Range("B2").Resize(48, 6).Value = r.Value
If chk Then wbSource.Close False
Next i
End Sub