Я пытаюсь заполнить две ячейки двумя разными динамическими списками проверки. Первый - это массив строк, а второй - массив дат.Заполнение уникальных дат в динамическом списке валидации
Я использую следующий код.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("G21")) Is Nothing Then
Call getValidationSeries
End If
If Not Intersect(Target, Range("I21")) Is Nothing Then
Call getValidationExpiry
End If
End Sub
Вслед за Sub getValidationSeries()
Dim valseries(100) As String
~~~Other declarations
~~~~ code to fill identify unique values in valseries
Range("Charts!G21").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Join(valseries, ",")
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
И
Sub getValidationExpiry()
Dim valseries(100) As Date
~~~Other declarations
~~~~ code to fill identify unique dates in valseries
Range("Charts!I21").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Join(valseries, ",")
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Вопрос в
выше работает отлично для первого суб где valseries является массивом строки. Но не работает, когда valseries - это массив дат во втором суб. Я знаю, что не могу использовать Join во второй функции, потому что это переменная date. Когда я объявлял valseries как вариант вместо переменной Date, он работал, но он преобразовывал все даты в строки. Мне нужны они как даты (конечно, я могу перевести их обратно в даты, но это не эффективно)
Любая подсказка? Я не хочу хранить уникальные значения в диапазоне.
Я смотрел на них (которые были похожи на то, что я делал для строк), но не очень помогают датам.
Programmatically creating Excel VBA validation list
Excel Validation Drop Down list using VBA
Excel: How to create dynamic data validation list based on data table
Спасибо заранее.
Большое спасибо за пример и имеющий вид. Это делает то же самое, что и объединение, за исключением форсирования формата даты. Как я уже писал, ошибка была где-то в другом месте. – Peekay