在Excel 2013中隐藏不活动表格中的行

从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:=True Worksheets("Sheet2").Rows("2:2").EntireRow.Hidden = False当设置userinterfaceonly选项为true时,VBA隐藏行的代码仅在表单处于活动状态时起作用

我无法在新的2013工作表上重新创build此错误。 但只有在2013年打开2010年的Excel应用程序。奇迹如果我在这里玩任何设置。

 Sub MakeScript1() application.ScreenUpdating = False Sheets("Script1").Visible = True ThisWorkbook.Sheets("Script1").Select Dim x As Long, Z As Long, FF As Long, TextOut As String Const OutputPath As String = "c:\temp\" '<==Note the trailing backslash Const BaseFileName As String = "Script1" Const StartColumn As Long = 1 'Assumed Column A Const StartRow As Long = 1 'Assumed Row 1 For x = StartColumn + 1 To StartColumn + 1 TextOut = "" For Z = StartRow To StartRow + 19 TextOut = TextOut & Cells(Z, StartColumn).Value & " " & Cells(Z, x).Value & vbNewLine Next FF = FreeFile Open OutputPath & BaseFileName & ".vbs" For Output As #FF Print #FF, TextOut Close #FF Next ThisWorkbook.Sheets("Instructions").Select Sheets("Script1").Visible = False application.ScreenUpdating = True End Sub 

看我是怎么做的

表格(“Script1”)。Visible = True

接着

表格(“Script1”),可见= False

哎呀,我的坏以上不是你想要的。

这里试试这个代码:

 Dim RowsToHide As Range Dim RowHideNum As Integer ' Set Correct Start Dates for Billing in New File Workbooks("----- Combined_New_Students_Updated.xlsx").Activate Sheets("2015").Activate StartDateLine1 = Format(START_DATE_1, "ww") - 1 ' Convert Start Date to Week Number StartDateLine1 = (StartDateLine1 * 6) - 2 ' Convert Start Date to Line Number If StartDateLine1 >= "10" Then Cells(4, "q").Value = "" Cells(StartDateLine1, "q").Value = STATUS_1 Cells(StartDateLine1, "z").Value = "START DATE " + START_DATE_1 RowHideNum = StartDateLine1 - 2 Set RowsToHide = Range(Cells(3, "a"), Cells(RowHideNum, "ab")) RowsToHide.Select RowsToHide.EntireRow.Hidden = True End If