Как исправить процедуру, если в умной таблице в столбце "выбор" нет выбранных строк.
If Not IsEmpty(.Cells(Range("v").Column)) Then MsgBox "Строк для обработки не выделено", vbCritical: Exit Sub
"v" - именованный диапазон откуда выбираются записи.
Могу предложить три способа обращения к столбцу в вашем случае (возможно можно найти ещё способы обращения к умной таблице).
А проверку удобно сделать с помощью эксель-функции "CountA" (СЧЁТЗ).
Способ 1. Обращение к имени "v", которое вы создали в файле.
Sub Макрос()
If WorksheetFunction.CountA(Range("v")) = 0 Then
MsgBox "Строк для обработки не выделено", vbCritical
Exit Sub
End If
End Sub
Способ 2. Обращение к умной таблице с использованием объекта "ListObject".
Sub Макрос2()
Dim tbl As ListObject
' Присваивание умной таблице имени "tbl", чтобы затем удобно
' обращаться к умной таблице по этому имени в коде.
' Вместо "1" можно указать имя умной таблицы.
' Имя умной таблицы можно посмотреть здесь: контекстная владка "Конструктор" - Имя таблицы.
Set tbl = ActiveSheet.ListObjects(1)
If WorksheetFunction.CountA(tbl.DataBodyRange.Columns(2)) = 0 Then
MsgBox "Строк для обработки не выделено", vbCritical
Exit Sub
End If
End Sub
Способ 3. Обращение к умной таблице по специальным именам внутри объекта "Range".
Sub Макрос3()
If WorksheetFunction.CountA(Range("Таблица1[Выбор]")) = 0 Then
MsgBox "Строк для обработки не выделено", vbCritical
Exit Sub
End If
End Sub