什么是最好的方式来存储命名的范围信息?

存储指定范围信息的最佳做法是什么?

背景是:我们根据一些参数(如数据源,开始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

任何意见? 谢谢。