.InputMessage = Target.Text
дает ошибку. Проблема в том, что целью является несколько ячеек, и они не имеют свойства Text
. Быстрое решение состоит в том, чтобы взять первую ячейку цели:
.InputMessage = Target.Cells(1).Text
Таким образом, если это отдельная ячейка, она все еще является первой и, если она объединена, она работает нормально:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
.InputMessage = Target.Cells(1).Text
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
End Sub