وعليكم السلام ورحمة الله تعالى وبركاته
هناك عدة حلول تعتمد على طريقة عملك منها
استخدام USERPROFILE لجعل مسار الملف ديناميكيا _ وضع المصنف في نفس مجلد ملف الماكرو
أو السماح للمستخدم باختيار الملف يدويا (Browse) كما أشار الأخ الفاضل @hegazee
اليك الأكواد بالترتيب المدكور يمكنك إختيار ما يناسبك
Sub OpenWorkbook1()
Dim xPath As String, CrWS As Workbook
On Error GoTo ErrHandler
xPath = Environ("USERPROFILE") & "\Desktop\aa.xlsb" ' OR <===== aa.xlsx
If Dir(xPath) = "" Then MsgBox "الملف غير موجود: " & xPath, vbExclamation: Exit Sub
Set CrWS = Workbooks.Open(xPath)
MsgBox "تم فتح الملف بنجاح", vbInformation
Exit Sub
ErrHandler:
MsgBox "حدث خطأ: " & Err.Description, vbCritical
End Sub
'===================================================
Sub OpenWorkbook2()
Dim xPath As String, CrWS As Workbook
On Error GoTo ErrHandler
xPath = ThisWorkbook.Path & "\aa.xlsb" ' OR <===== aa.xlsx
If Dir(xPath) = "" Then MsgBox " :الملف غير موجود" & vbNewLine & vbNewLine & xPath, vbExclamation: Exit Sub
Set CrWS = Workbooks.Open(xPath)
MsgBox "تم فتح الملف بنجاح", vbInformation
Exit Sub
ErrHandler:
MsgBox "حدث خطأ: " & Err.Description, vbCritical
End Sub
'==================================================
Sub OpenWorkbook3()
Dim xPath As String, CrWS As Workbook
On Error GoTo ErrHandler
xPath = Application.GetOpenFilename("إختيار الملف (*.xls*), *.xls*")
If xPath = "False" Then MsgBox "تم إلغاء العملية", vbInformation: Exit Sub
Set CrWS = Workbooks.Open(xPath)
MsgBox "تم فتح الملف بنجاح: " & xPath, vbInformation
Exit Sub
ErrHandler:
MsgBox "حدث خطأ: " & Err.Description, vbCritical
End Sub
وفي حالة الرغبة في التحقق من أن إسم الملف الذي يختاره المستخدم يطابق إسم معين مثلا aa.xlsb قبل فتح الملف
Sub OpenWorkbook4()
Dim xPath$, CrWS As Workbook,Sname$
On Error GoTo ErrHandler
Sname = "aa.xlsb"
xPath = Application.GetOpenFilename("إختيار الملف (*.xls*), *.xls*")
If xPath = "False" Then: MsgBox "تم إلغاء العملية", vbInformation: Exit Sub
fileName = Dir(xPath)
If StrComp(fileName, Sname, vbTextCompare) <> 0 Then
MsgBox "اسم الملف غير مطابق" & vbNewLine & Sname, vbCritical
Exit Sub
End If
Set CrWS = Workbooks.Open(xPath)
MsgBox " :تم فتح الملف بنجاح" & vbNewLine & vbNewLine & CrWS.name, vbInformation
Exit Sub
ErrHandler:
MsgBox "حدث خطأ: " & Err.Description, vbCritical
End Sub
bb.xlsb