2013-05-13 230 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 
相關問題