什么是最好的方式来存储命名的范围信息?
存储指定范围信息的最佳做法是什么?
背景是:我们根据一些参数(如数据源,开始date和结束date)从Web服务中检索数据。 我们将数据检索到一个命名的范围,如A1:D10。 用户可以稍后刷新指定的范围,或与他的同事共享工作簿。
目前,我们将命名范围的名称以及其他参数(如数据源,开始date和结束date)存储到表单自定义属性中。 之后再次打开工作簿时,我们从定制属性中读取命名范围的名称,数据源,开始date和结束date。 因此,最终用户可以在需要时刷新指定范围的数据。
由于用户可以插入/删除行/列,所以我们不能存储指定的范围地址(R1C1),所以指定的范围地址将被改变。 那么我们必须将命名范围的名称存储到自定义属性中。
但问题是:命名范围的名称也可以改变。 用户可以点击公式 – >名称pipe理器来更改名称。 目前我们必须教育我们的最终用户不这样做。 但绝对不是最好的解决scheme。
那么你能给我一些build议吗? 存储指定范围信息及其相关信息的最佳做法是什么? 谢谢。
根据你所提供的…
我会考虑保护包含指定范围的工作表。 保护工作表使得更改用户不可用的命名范围的名称。 你可以使很多事情仍然可用:所有单元格解锁,插入行/列等的能力
例如,考虑Sheet1具有A1:A3调用麻烦命名范围的工作簿。 运行这个macros之后…
Sub test() Dim mySht As Worksheet Set mySht = Worksheets("Sheet1") With mySht .Unprotect .Cells.Locked = False .Protect UserInterfaceOnly:=True, AllowInsertingRows:=True, _ AllowDeletingRows:=True, AllowInsertingColumns:=True, _ AllowDeletingColumns:=True End With End Sub
“名称pipe理器”对话框如下所示(请注意“新build…”,“编辑…”和“删除”button呈灰色显示)
所以命名的范围不能改变。 但是,仍然可以编辑所有单元格,并插入或删除行/列。
不利的一面是,新的命名范围也不能添加到该表中。
build议在Google组隐藏范围内使用。 从UXangular度来看,似乎比locking工作表更好。
请参阅https://groups.google.com/forum/#!topic/exceldna/U8qeOpHiuI8 。
任何意见? 谢谢。