2016-05-09 244 views
0

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

背景是:我们根据一些参数(如数据源,开始日期和结束日期)从Web服务检索数据。我们将数据检索到命名范围,如A1:D10。用户可以稍后刷新命名范围,或与他的同事共享工作簿。

当前我们存储名为范围的名称和其他参数,如数据源,开始日期和结束日期到图表自定义属性。稍后当工作簿再次打开时,我们从定制属性中读取命名范围的名称,数据源,开始日期和结束日期。因此,最终用户可以在需要时刷新指定范围的数据。

由于用户可能会插入/删除行/列,所以我们无法存储已命名的范围地址(R1C1),因此命名的范围地址将会更改。那么我们必须将命名范围的名称存储到自定义属性中。

但问题是:命名范围的名称也可以更改。用户可以点击公式 - >名称管理器来更改名称。目前我们必须教育我们的最终用户不要这样做。但绝对不是最好的解决方案。

那么你能给我一些建议吗?存储指定范围信息及其相关信息的最佳做法是什么?谢谢。

+0

按照需求创建用户表单以维护数据和存储。 – Jules

回答

1

根据您所提供的...

我会去了解一下保护包含命名的区域(一个或多个)片(或多个)。保护工作表使得更改用户不可用的命名范围的名称。您可以使很多东西仍然可用:所有单元格解锁,插入行/列的能力等。

例如,考虑Sheet1具有A1:A3调用Numbs的命名范围的工作簿。运行此宏后...

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 

名称管理器对话框,如下所示(请注意新... ...编辑和删除按钮变灰)

enter image description here

所以命名的范围不能改变。但是,仍然可以编辑所有单元格,并插入或删除行/列。

不利的一面是,新的命名范围无法添加到该表中。

+0

该解决方案保护纸张,看起来是最接近的解决方案。用户仍然可以编辑单元格,排序或插入图表。也许这是我们拥有的最佳解决方案。 –

相关问题