Ошибка ввода в объединенные ячейки в Excel для возможности отображения сообщений - PullRequest
1 голос
/ 28 октября 2019

У меня есть некоторый код VBA в Excel, который позволяет мне просматривать содержимое ячейки при ее выборе. Вот пример:

Example of cell selection

Вот код для этого:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.InputMessage = Target.Text
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
End Sub

Однако, когда я выбираю объединенную ячейку, я получаю следующую ошибку:

Error message

Как запустить этот код для работы с объединенными ячейками?

1 Ответ

5 голосов
/ 28 октября 2019

.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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...