2013-05-13 165 views
0

我有一组单元格B32,直到R32长度和B32到B51宽度。我想在打开表单时将此块隐藏起始处。我已将此块命名为“分析”。隐藏/取消隐藏excel中的单元格组按钮

工作表中有一个按钮。当按下按钮时,我想取消隐藏该块。我是Excel Vba的新手。我想知道执行此操作的语法/代码。

在此先感谢。

Ananda

+0

这是Module1的代码替换ThisWorkbook下的代码一个容易谷歌的答案,我想。 – 2013-05-13 09:00:08

+0

我在Google中检出的代码无法使用。 – anand 2013-05-13 09:16:13

+1

您正在使用哪些代码?你在原来的问题中没有提到。 – 2013-05-13 09:34:02

回答

2

你不能只隐藏像MattCrum提到的区域。
你有3个选择,就我而言现在


,只要确保你有什么 - 在 Range 32:51和你的主片(数据未空单元格),要么叫 Sheet1或更改 Sheet1的代码,以满足工作表在 project explorer VBE (Visual Basic Editor)双击 ThisWorkbook命名

1) 并粘贴此代码

Private Sub Workbook_Open() 
    ThisWorkbook.Sheets("Sheet1").Rows(32 & ":" & 51).hidden = True 
End Sub 

右键单击该文件夹上和InsertModule,然后将此代码粘贴

Sub unhide() 
    ThisWorkbook.Sheets("Sheet1").Rows(32 & ":" & 51).hidden = False 
End Sub 

现在,添加一个按钮,在电子表格上,点击右键,分配宏观叫unhide它。

保存所做的修改工作簿保存为* .XLSM文件

请注意,当你现在打开工作簿,行32至51是隐藏的。点击按钮将取消隐藏它们。


2)您可以将字体颜色更改为白色至 "hide"的内容。

按照步骤1,用

ThisWorkbook.Sheets("Sheet1").Range("B32:R51").Font.Color = RGB(0, 0, 0) 

现在更换

ThisWorkbook.Sheets("Sheet1").Rows(32 & ":" & 51).hidden = True 

与此

ThisWorkbook.Sheets("Sheet1").Range("B32:R51").Font.Color = RGB(255, 255, 255) 

,并在Module(在unhide子程序)的代码,一切正常相似到第1步,除了你的"hiding"(改变)字体颜色而不是隐藏行。不是一个伟大的方式,但如果你的作品,然后冷却


3)按照第1步,并与

Option Explicit 

Private Sub Workbook_Open() 

    Application.ScreenUpdating = False 

    Set ws = ThisWorkbook.Sheets("Sheet1") 

    Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "hiddenSheet" 
    Set hs = ThisWorkbook.Sheets(Worksheets.Count) 
    hs.Visible = xlSheetHidden 

    ws.Range("B32:R51").Select 
    Selection.Copy 

    With hs 
     .Activate 
     .Range("B32").Select 
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
      :=False, Transpose:=False 
     Application.CutCopyMode = False 
    End With 

    ws.Activate 
    ws.Rows(32 & ":" & 51).Delete 

    Application.ScreenUpdating = True 
End Sub 

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    Call deleteHidden(Worksheets.Count) 
End Sub 

而且随着

Option Explicit 
Public ws As Worksheet, hs As Worksheet 

Sub unhide() 
    With hs 
     .Activate 
     .Rows("32:51").Select 
     Selection.Copy 
    End With 
    With ws 
     .Activate 
     .Rows("32:32").Select 
     Selection.Insert Shift:=xlDown 
    End With 
End Sub 

Sub deleteHidden(num&) 
    Application.DisplayAlerts = False 
    Worksheets(num).Delete 
    Application.DisplayAlerts = True 
    Set hs = Nothing 
End Sub 
相关问题