Есть много способов реализовать обработку ошибок. Вот один…
Private Sub Worksheet_Change(ByVal Target As Range)
'… rest of your code
On Error Goto ERR_FILE_OPEN
Dim Wb As Workbook
Set Wb = Workbooks.Open("C:\Users\USERX\Desktop\Test File\" & varCellvalue & "")
On Error Goto 0 'don't forget to re-enable error reporting
'… rest of your code
Exit Sub
ERR_FILE_OPEN:
MsgBox "File '" & varCellvalue & "' could not be opened.", vbCritical
End Sub
Для получения дополнительной информации читайте: Обработка ошибок VBA - Полное руководство .
Обратите внимание, что
If Target.Address = "$G$9" Then
не очень надежный метод для проверки, была ли изменена ячейка G9. Вместо этого всегда используйте метод пересечения, чтобы проверить, был ли изменен диапазон:
If Not Intersect(Me.Range("G9"), Target) Is Nothing Then
varCellvalue = Me.Range("G9").Value