Vba 什么';存储命名范围信息的最佳方式是什么?

Vba 什么';存储命名范围信息的最佳方式是什么?,vba,excel,Vba,Excel,存储命名范围信息的最佳做法是什么 背景是:我们根据数据源、开始日期和结束日期等参数从web服务中检索数据。我们将数据检索到一个命名范围,例如A1:D10。用户可以稍后刷新命名区域,或与其同事共享工作簿 目前,我们将命名范围的名称和其他参数(如数据源、开始日期和结束日期)存储到图纸自定义属性中。稍后,当工作簿再次打开时,我们从自定义属性中读取命名区域的名称、数据源、开始日期和结束日期。因此,最终用户可以在需要时刷新命名范围的数据 由于用户可能插入/删除行/列,因此我们肯定无法存储命名范围地址(R1

存储命名范围信息的最佳做法是什么

背景是:我们根据数据源、开始日期和结束日期等参数从web服务中检索数据。我们将数据检索到一个命名范围,例如A1:D10。用户可以稍后刷新命名区域,或与其同事共享工作簿

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

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

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


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

根据您提供的

我将研究如何保护包含命名范围的工作表。保护图纸会使用户无法更改命名范围的名称。您可以使它有很多东西仍然可用:所有单元格都已解锁,可以插入行/列,等等

例如,考虑具有SeET1的工作簿,该工作簿具有A1:A3调用麻木的命名范围。运行此宏后

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
“名称管理器”对话框如下所示(注意,“新建…”、“编辑…”和“删除”按钮变灰)

因此,无法更改命名范围。但是,仍然可以编辑所有单元格,插入或删除行/列


在反面,新的命名范围也不能添加到该工作表。

根据您提供的内容

我将研究如何保护包含命名范围的工作表。保护图纸会使用户无法更改命名范围的名称。您可以使它有很多东西仍然可用:所有单元格都已解锁,可以插入行/列,等等

例如,考虑具有SeET1的工作簿,该工作簿具有A1:A3调用麻木的命名范围。运行此宏后

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
“名称管理器”对话框如下所示(注意,“新建…”、“编辑…”和“删除”按钮变灰)

因此,无法更改命名范围。但是,仍然可以编辑所有单元格,插入或删除行/列


在负面方面,新的命名范围也不能添加到该表中。

在Google group中,建议使用隐藏范围。从用户体验的角度来看,这似乎比锁定工作表要好


有什么评论吗?谢谢。

建议使用Google group中的隐藏范围。从用户体验的角度来看,这似乎比锁定工作表要好


有什么评论吗?谢谢。

创建用户表单以按要求维护数据和存储。创建用户表单以按要求维护数据和存储。此解决方案“保护工作表”看起来是最接近的解决方案。用户仍然可以编辑单元格、排序或插入图表。也许这是我们最好的解决方案。这个解决方案,保护床单,看起来是最接近的解决方案。用户仍然可以编辑单元格、排序或插入图表。也许这是我们最好的解决方案。