H o la: Si la hoja activa es la "REGISTRO", entonces no es necesario hacer mención de la hoja y puede ser así:
Sub macro()
Dim UR As Long
Dim nvacio As Long
UR = [A1048576].End(xlUp).Row
nvacio = WorksheetFunction.CountBlank(Range(Cells(2, 1), Cells(UR, 1)))
If nvacio >= 1 Then
MsgBox ("No deben existir filas en blanco en los registros")
End If
End Sub
Pero si la hoja "REGISTRO" no es la hoja activa, supongo que es el caso, entonces tienes que hacer mención de la hoja en todas las referencias:
Sub macro()
Dim UR As Long
Dim nvacio As Long
UR = Worksheets("REGISTRO").[A1048576].End(xlUp).Row
nvacio = WorksheetFunction.CountBlank(Worksheets("REGISTRO").Range(Worksheets("REGISTRO").Cells(2, 1), Worksheets("REGISTRO").Cells(UR, 1)))
If nvacio >= 1 Then
MsgBox ("No deben existir filas en blanco en los registros")
End If
End Sub
Para evitar poner Worksheets("REGISTRO"), en todas las referencias puedes hacerlo de la siguiente forma:
Sub macro()
Dim UR As Long
Dim nvacio As Long
With Worksheets("REGISTRO")
UR = .[A1048576].End(xlUp).Row
nvacio = WorksheetFunction.CountBlank(.Range(.Cells(2, 1), .Cells(UR, 1)))
If nvacio >= 1 Then
MsgBox ("No deben existir filas en blanco en los registros")
End If
End With
End Sub
O también puedes establecer la hoja como objeto:
Sub macro()
Dim UR As Long
Dim nvacio As Long
Set h = Worksheets("REGISTRO")
UR = h.[A1048576].End(xlUp).Row
nvacio = WorksheetFunction.CountBlank(h.Range(h.Cells(2, 1), h.Cells(UR, 1)))
If nvacio >= 1 Then
MsgBox ("No deben existir filas en blanco en los registros")
End If
End Sub
Lo importante es que en la sentencia Range, ambos rangos (cells(), cells()) , tienes que poner la referencia de la hoja:
Worksheets("REGISTRO"). Range(Worksheets("REGISTRO"). Cells(2, 1), Worksheets("REGISTRO").Cells(UR, 1))
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias