当宏尝试修改受保护工作表中的图表时(UserInterfaceOnly) - >错误#:1004

时间:2016-08-09 17:30:14

标签: excel vba excel-vba

Sheet1受Workbook_Open()使用:

保护
ThisWorkbook.Worksheets("Sheet1").Protect Password:="Pass1", UserInterfaceOnly:=True.

宏正在尝试使用以下语句更改Chart1&#39s轴标签的字体大小:

ThisWorkbook.Worksheets("Sheet1").ChartObjects("Chart1").Chart. _ 
             Axes(xlCategory).TickLabels.Font.Size = 10

我收到以下错误:

  

错误:1004。

     

无法设置字体类的Size属性。

当我使用以下解决方法时,问题不再发生:

ThisWorkbook.Worksheets("Sheet1").Unprotect "Pass1"
ThisWorkbook.Worksheets("Sheet1").ChartObjects("Chart1").Chart. _
             Axes(xlCategory).TickLabels.Font.Size = 10
ThisWorkbook.Worksheets("Sheet1").Protect "Pass1"

但我想避免使用Unprotect / Protect表,这就是我选择使用

的原因
ThisWorkbook.Worksheets("Sheet").Protect Password:="Pass1", _
         UserInterfaceOnly:=True,

似乎不适用于特定情况。

1 个答案:

答案 0 :(得分:-1)

Worksheet.Protect有多种可以使用的参数(参见here)。特别是,尝试将DrawingObjects:=False参数添加到保护代码

ThisWorkbook.Worksheets("Sheet1").Protect Password:="Pass1", _ 
             UserInterfaceOnly:=True, DrawingObjects:=False

将明确允许您修改图表。

UserInterfaceOnly:=True似乎并没有真正给予VBA完全许可here