@ mywolfe02 дает код статического диапазона, поэтому его inRange работает нормально, но если вы хотите добавить динамический диапазон, используйте этот с функцией inRange его. Это лучше работает, когда вы хотите заполнить данные, чтобы исправить начальную ячейку и последний столбец также исправлено.
Sub DynamicRange()
Dim sht As Worksheet
Dim LastRow As Long
Dim StartCell As Range
Dim rng As Range
Set sht = Worksheets("xyz")
LastRow = sht.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).row
Set rng = Workbooks("Record.xlsm").Worksheets("xyz").Range(Cells(12, 2), Cells(LastRow, 12))
Debug.Print LastRow
If InRange(ActiveCell, rng) Then
' MsgBox "Active Cell In Range!"
Else
MsgBox "Please select the cell within the range!"
End If
End Sub