我有一组B32到R32长度和B32到B51宽度的单元格。我打算在打开工作表时将此块隐藏在开头。我已将此块命名为“分析”。
表格中有一个按钮。按下按钮时,我想取消隐藏该块。我是Excel Vba的新手。我想知道执行此操作的语法/代码。
提前致谢。
阿南达
答案 0 :(得分:2)
你不能隐藏像MattCrum所提到的那样的区域 就我而言,你有3个选择
<小时/> 现在,只需确保Range 32:51
中有一些内容(数据 - 不是空单元格),您的主工作表在代码中被称为Sheet1
或更改Sheet1
以适合您的工作表名称
VBE ( Visual Basic Editor )
中双击ThisWorkbook
中的project explorer
并粘贴此代码
Private Sub Workbook_Open()
ThisWorkbook.Sheets("Sheet1").Rows(32 & ":" & 51).hidden = True
End Sub
右键单击文件夹Modules
和Insert
新Module
,然后粘贴此代码
Sub unhide()
ThisWorkbook.Sheets("Sheet1").Rows(32 & ":" & 51).hidden = False
End Sub
现在,在电子表格上添加一个按钮,右键单击并为其指定名为unhide
的宏。
保存更改并将工作簿另存为* .xlsm文件
请注意,现在打开工作簿时,将隐藏第32行到第51行。单击该按钮将取消隐藏它们。
"hide"
内容。
按照步骤1,替换
ThisWorkbook.Sheets("Sheet1").Rows(32 & ":" & 51).hidden = True
用这个
ThisWorkbook.Sheets("Sheet1").Range("B32:R51").Font.Color = RGB(255, 255, 255)
和Module
(unhide
子例程)中的代码
ThisWorkbook.Sheets("Sheet1").Range("B32:R51").Font.Color = RGB(0, 0, 0)
现在,除了"hiding"
(更改)字体颜色而不是隐藏行之外,一切都与第1步类似。不是一个很好的方法,但如果它适合你,那么很酷
ThisWorkbook
下的代码替换为
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
Module1
中的代码
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