2014-05-08 66 views
3

无效表从Excel 2010中切换到Excel 2013,隐藏行在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应用程序。奇妙如果我在这里玩任何设置。

+3

这是否发生在所有文件或只是一个?你有没有在Excel 2010上验证这个*相同的*文件或只是泛化?确保工作簿/工作表不受保护。 –

+1

我能够通过保护'Sheet2'来重新创建'1004'错误,伟大的建议@DavidZemens!当然,你可以通过使用'Worksheet.Unprotect Password:=“da_password”'清除它,注意可能没有密码(在这种情况下,你可以简单地使用'.Unprotect'方法 –

+1

工作表(“Sheet2”) .Protect Password:=“password”,userinterfaceonly:= True Worksheets(“Sheet2”)。行(“2:2”)。EntireRow.Hidden = False当将userinterfaceonly选项设置为true时,VBA代码隐藏行仅在工作表已激活 –

回答

-1
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”)。可见=真

然后

表( “SCRIPT1”)。可见=假

-1

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

试试这里的代码从这个:

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