Я пытаюсь добавить раскрывающийся список проверки данных, и я отлаживал его некоторое время безрезультатно. Я получаю ошибку времени выполнения 1004, определенную приложением или объектную ошибку. Ошибка возникает в команде настройки Формулы 1 инструкции Validation.Add
.Ошибка списка проверки данных
Я попытался использовать ссылку на строку с именованным диапазоном, ссылку на строку со стандартным диапазоном и, как показано ниже, строку списка с разделителями-запятыми, созданную из списка на листе, как показано в приведенном ниже коде. Я проверил строку списка с Debug.Print
и получил ожидаемый результат.
Sub addPT_Validation()
Dim sValidationList As String
Dim cell As Range
For Each cell In ThisWorkbook.Names("PT_Puldown").RefersToRange
sValidationList = sValidationList & cell.Value & ","
Next cell
sValidationList = Left(sValidationList, Len(sValidationList) - 1)
With ActiveSheet.Range("D14").Validation
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlEqual, _
Formula1:=sValidationList
.IgnoreBlank = True
.InCellDropdown = True
.ShowError = True
End With
End Sub
Заранее благодарим за любые указания.
, что это прекрасно (не самый лучший путь), но вы можете передать строку тоже и его приемлемым. Ошибка 1004 связана с отсутствующей инструкцией удаления. – cyboashu
@cyboashu Я не делал никаких тестов скорости, но вы можете избежать строкового кодирования, просто передав адрес аргументу. –
@cyboashu О, и я согласен с вами о значении недостающего 'delete' –