当macros尝试修改保护工作表(UserInterfaceOnly)中的图表 – >错误#:1004
Sheet1受到Workbook_Open()
保护,使用:
ThisWorkbook.Worksheets("Sheet1").Protect Password:="Pass1", UserInterfaceOnly:=True.
一个macros试图改变Chart1的轴标签的字体大小,使用以下语句:
ThisWorkbook.Worksheets("Sheet1").ChartObjects("Chart1").Chart. _ Axes(xlCategory).TickLabels.Font.Size = 10
我得到以下错误:
错误:1004。
无法设置字体类的大小属性。
当我使用以下解决方法时,问题不再发生:
ThisWorkbook.Worksheets("Sheet1").Unprotect "Pass1" ThisWorkbook.Worksheets("Sheet1").ChartObjects("Chart1").Chart. _ Axes(xlCategory).TickLabels.Font.Size = 10 ThisWorkbook.Worksheets("Sheet1").Protect "Pass1"
但是我想避免使用Unprotect / Protect表单,这就是我select使用的原因
ThisWorkbook.Worksheets("Sheet").Protect Password:="Pass1", _ UserInterfaceOnly:=True,
这似乎不适用于特定情况。
Worksheet.Protect
有各种各样的参数可以使用(见这里 )。 特别是,尝试添加DrawingObjects:=False
参数到您的保护代码
ThisWorkbook.Worksheets("Sheet1").Protect Password:="Pass1", _ UserInterfaceOnly:=True, DrawingObjects:=False
这将明确允许您修改图表。
看来UserInterfaceOnly:=True
并不真正赋予VBA完全的权限,正如这里所提到的。