【发布时间】:2020-01-14 11:43:57
【问题描述】:
我目前正在努力创建取决于先前选择的数据验证下拉菜单
(OS X 上的 Excel 版本 16.32)
我想要实现的目标:在 F 列中,我想使用公式“=INDIRECT($Ei)”创建数据验证 - 所以对于单元格 F2 =INDIRECT(E2),单元格 F3 =间接(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) & ")"
我之前使用了以下 sn-p,但这导致 =INDIRECT("Ei") 由于公式中的 "" 而不起作用
Formula1:="=INDIRECT(""" & Range(indirect_address).address(False, False) & """)"
感谢期待 -CM
【问题讨论】: