1

有谁知道是否有办法保护图表名称以使用户无法更改它?我有很多引用各种图表的代码。如果用户要更改一个或多个图表名称,事情很快就会变得难看。

4

2 回答 2

1

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

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

看起来像这里:

在此处输入图像描述

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

像这儿:

在此处输入图像描述

使用内部代码名称应该解决您的用户问题,因为他们可以按照他们想要的方式命名它们,您也可以;)我不信任索引 8 并且讨厌使用用户定义的名称 - 代码名称是最好的,除了处理在代码中,但这只是一个主要的 vba 缺陷。

我猜想,这些额外的图表会让你有点厌烦,所以只需让它们不可见,并将它们的副本用作表格中的 ChartObjects。

这应该是它。

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

希望这可以帮助 ;)

于 2012-09-07T09:56:10.113 回答
0

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

    ThisWorkbook.VBProject.VBComponents(Sheets("Sheet2").CodeName).Name = "NewChartName" ' & Workbook.Sheets.Count
于 2017-03-15T16:48:27.637 回答