我有一个电子表格,它有验证规则,这样单元格就会显示有效答案的下拉列表。这些答案保存在电子表格的其他位置,但它们数量很多,名称复杂,并且工作表经常被隐藏。
我想在电子表格中找到存储这些有效答案的位置。
我如何浏览 Excel VBA 对象以从单元格中找到答案列表的位置?
答案1
您可以使用功能区中的“数据”>“数据验证”通过弹出对话框设置单元格的验证。如果您对已设置验证的单元格执行相同操作,则弹出窗口将显示之前设置的验证。
如果该验证是一个列表,则会显示列表的源范围,单击源范围旁边的小电子表格图标即可转到该列表。
答案2
Sub ShowValidValues()
Dim oCell As Range
Dim vValidation As Variant
Dim vList As Variant
Set oCell = ActiveCell
On Error GoTo noval
vList = oCell.Validation.Formula1
If Left(vList, 5) = "=list" Then
vList = Mid(vList, 2, 99)
Dim oRange As Range
Set oRange = Range(vList)
Sheets(oRange.Parent.Name).Visible = True
Sheets(oRange.Parent.Name).Activate
oRange.Activate
End If
noval:
On Error GoTo 0
End Sub
这将从当前单元格中找到列表,使工作表可见,切换到它,并激活单元格范围。