【发布时间】:2014-05-08 23:02:31
【问题描述】:
从 Excel 2010 切换到 Excel 2013,
当 Sheet2 处于非活动状态时
代码
Worksheets("Sheet2").Rows("432:432").EntireRow.Hidden = False
报错
Unable to set the Hidden property of the Range class
但是当 Sheet2 是活动工作表时工作正常
在 Excel 2010 中,VBA 在 InactiveSheets 中隐藏行没有问题。
这是 Excel 2013 中的一个变化吗?如果是,任何修复。
编辑:
Worksheets("Sheet2").Protect Password:="password", userinterfaceonly:=TrueWorksheets("Sheet2").Rows("2:2").EntireRow.Hidden = False
将 userinterfaceonly 选项设置为 true 时,隐藏行的 VBA 代码仅在工作表处于活动状态时有效
我无法在新的 2013 工作表上重新创建此错误。但仅在 2013 年打开 2010 Excel 应用程序时。想知道我是否在这里玩任何设置。
【问题讨论】:
-
这种情况发生在所有文件上还是只发生在一个文件上?您是否在 Excel 2010 上为 same 文件验证了这一点,还是只是概括?确保工作簿/工作表不受保护。
-
我能够通过保护
Sheet2重新创建1004错误,很好的建议@DavidZemens!当然,您可以使用Worksheet.Unprotect Password:="da_password"清除此内容,注意可能没有密码(在这种情况下您可以简单地使用.Unprotect方法 -
Worksheets("Sheet2").Protect Password:="password", userinterfaceonly:=True Worksheets("Sheet2").Rows("2:2").EntireRow.Hidden = False 设置时userinterfaceonly 选项为 true,隐藏行的 VBA 代码仅在工作表处于活动状态时有效
-
使用 AllowFormattingRows:=True, userinterfaceonly:=True ,已解决此问题。
标签: vba excel excel-2013