在回答另一个问题时,我看到了一个建议的验证列表条目示例:
With rng.Validation
.Delete 'delete previous validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="='" & ws.Name & "'!" & range1.Address
End With
这很好但是,如果可能的话,不是在Formula1中包含工作表的名称,而是包括Excel对象名称(例如Sheet1,Sheet2等)。这样,如果有人选择重命名工作表,那么宏仍然可以未经编辑工作。
这是可能的,如果是这样,那么将它包含在Formula1中的最佳方法是什么?
答案 0 :(得分:2)
只需使用,我建议所有情况,范围的地址包括工作表的名称含蓄地
Formula1:="=" & range1.Address(External:=True)
External:=True
将在引用中包含父表,无论它现在是什么,然后它会在以后更改。
P.S。工作表的名称将出现在公式中,但如果用户更改工作表名称,Excel将自动更新引用它的所有公式,除非在INDIRECT
函数内。所以你担心的问题不是一个实际问题。
将此视为仅建议设置外部引用的方法。