On Error GoTo Handler
обычно считается плохой практикой.Вы должны всегда стараться по возможности кодировать ожидаемые ошибки для большей надежности.В этом случае мы можем просто проверить размер .Selection , прежде чем предпринимать какие-либо действия, используя .Rows.Count
и .Columns.Count
.Нам нужно ограничить сабвуфер работать только тогда, когда он возвращает диапазон 8 x 1
.
Если это все, что делает ваш саб, то это должно быть хорошо ....
Sub Selections()
If Selection.Rows.Count <> 8 Or Selection.Columns.Count <> 1 Then
MsgBox "Error Message Here"
Exit Sub
Else
Selection.Resize(, 4).Copy
With Worksheets("3inch_OD7133KS ")
.Range("B7").PasteSpecial xlPasteValues
.Range("B27").PasteSpecial xlPasteValues
.Range("B47").PasteSpecial xlPasteValues
End With
End If
End Sub
Если у вас есть дополнительный код для добавления после проверки размера выбранного диапазона, вы можете вложить свой тест следующим образом ...
Sub Selections()
If Selection.Rows.Count <> 8 Or Selection.Columns.Count <> 1 Then
MsgBox "Error Message Here"
Exit Sub
End If
Selection.Resize(, 4).Copy
With Worksheets("Sheet1")
.Range("B7").PasteSpecial xlPasteValues
.Range("B27").PasteSpecial xlPasteValues
.Range("B47").PasteSpecial xlPasteValues
End With
'More code here....
End Sub