В настоящее время я пытаюсь создать раскрывающиеся списки для проверки данных, которые зависят от предыдущего выбора
(версия Excel 16.32 для OS X)
Чего я хочу достичь : В столбце F я хотел бы создать проверку данных по формуле "= INDIRECT ($ Ei)" - поэтому для ячейки F2 = INDIRECT (E2), ячейка F3 = INDIRECT (E3)
Проблема: Текущий код работает, если выбор в столбце E уже сделан. Если ячейки в столбце E пусты, как и должно быть по умолчанию, я получаю ошибку 1004
Код выглядит в настоящее время так:
Dim currentrows As Integer
Dim i As Integer
Dim indirect_address As Variant
For Each ws In Sheets
If ws.Name <> "Overview" And ws.Name <> "Hidden" Then
currentrows = ws.UsedRange.Rows.Count
ws.Activate
With Range("E2:E" & currentrows).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="=Hidden!$A$2:$A$4"
End With
For i = 2 To currentrows
indirect_address = "E" & i
With Range("F" & i).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="=INDIRECT(" & Range(indirect_address).address(False, False) & ")"
End With
Next i
End If
Next ws
Я специально борюсь с этой частью , поскольку я не понимаю его в полном объеме
Formula1:="=INDIRECT(" & Range(indirect_address).address(False, False) & ")"
Я использовал следующий фрагмент раньше, но это приводит к = INDIRECT ("Ei"), который не работает из-за "" в формуле
Formula1:="=INDIRECT(""" & Range(indirect_address).address(False, False) & """)"
Спасибо в ожидании -CM