保护图表名称

时间:2012-08-03 05:39:17

标签: excel excel-vba vba

有没有人知道是否有办法保护图表名称以便用户无法更改它?我有很多引用各种图表的代码。如果用户要更改一个或多个图表名称,那么事情会很匆忙。

2 个答案:

答案 0 :(得分:1)

我可能会为您提供一个解决方案,但它会带来一些开销。

您可以为正在使用的每个图表添加真实图表,并希望在工作簿中具有名称保护。它们在工作簿中显示为单独的选项卡(如表格)。

看起来像这样:

enter image description here

右键单击您的图表,然后选择移动图表,然后选择新工作表。这样你就可以拥有“更好”的图表对象,你可以通过VBA或Ribbon-Menue单独保护你有一个内部 CodeName

喜欢这里:

enter image description here

使用内部CodeName,您的用户麻烦应该完成,因为他们可以按照他们想要的方式命名,所以你可以;)我不信任索引eighter和讨厌使用用户定义的名称 - 代码名称是最好的,除了代码处理,但这只是一个主要的vba缺陷。

我猜,那些额外的图表会让你有点兴奋,所以只需让它们不可见,并在表格中使用它们的副本作为ChartObjects。

这应该是它。

此外,我偶然发现了一个有趣的事实,即你真的只能通过将图表名保护为受保护表中的嵌套对象来保护图表名称。即使我的尝试,用户也可以更改名称,除非您使用它保护工作簿结构和所有表/图表名称。

希望这会有所帮助;)

答案 1 :(得分:0)

尝试类似这样的代码。将“Sheet1”更改为“Chart#”。最后一点(注释掉&Workbook.Sheets.Count)可以重新添加到您的编码中,如果您有许多图表,则可以添加增量命名。

    ThisWorkbook.VBProject.VBComponents(Sheets("Sheet2").CodeName).Name = "NewChartName" ' & Workbook.Sheets.Count