Проверка данных не сохранит - PullRequest
2 голосов
/ 21 июня 2019

У меня есть подпрограмма, которая добавляет проверку данных на лист. Похоже на работу:

Public Sub AddDataValidation(ByRef rng As Range, ParamArray options() As Variant)
    With rng.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
            operator:=xlBetween, Formula1:=Join(options, ",")
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = False
    End With
End Sub

Я пытаюсь использовать это для добавления проверки данных в 40+ рабочих книг, которые я создаю. Саб работает нормально (и если я не закрываю книги, проверка работает). Но когда я закрываю книгу и снова открываю, я получаю это предупреждение:

Мы обнаружили проблему с некоторым содержимым в filename.xlsx. Вы хотите, чтобы мы попытались восстановить столько, сколько мы можем? Если вы доверяете источнику этой книги, нажмите Да.

Нажатие Нет закрывает книгу; Если щелкнуть «Да», откроется окно, но проверки данных там нет.

Что мне здесь не хватает? Это потому, что параметры проверки не хранятся на листе? Будет ли он работать с другим типом файла?

Спасибо

1 Ответ

3 голосов
/ 23 июня 2019

Скорее всего, ваш список параметров слишком велик, чтобы обрабатывать список в виде строки, а не диапазона.Я и сам нашел этот путь нелегким :).Если я не ошибаюсь, список не может превышать 255 символов.Поэтому, если он больше, вам нужно сохранить список в диапазоне и обратиться к диапазону в формуле проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...