EXCEL VBA-如何用VBA使excel表格部分可见,其它隐藏

比如A1:S100可见,其它都不可见

Private Sub Worksheet_Change(ByVal Target As Range)
Dim I&, B列文件夹个数, B列两邻文件夹范围, K列最末数据行
'以下用于Q2单元格的有效数据使用:

If Target.Address = "$Q$2" Then
Cells.Rows.Hidden = False
K列最末数据行 = Range("K65536").End(xlUp).Row

' Set B列两邻文件夹范围 = Range("B5:B" & IIf(Range("B65536").End(xlUp).Row < 5, 5, Range("B65536").End(xlUp).Row + 1)). _
Find(What:=Range("Q2").Value, LookAt:=xlWhole) '查找待筛选行的区域 '隐藏行
''上在这一句,已经被下面这一句取代了,借用了自定义函数:查找单元格前

B列两邻文件夹范围 = 查找单元格前(Range("B5:B" & IIf(Range("B65536").End(xlUp).Row < 5, 5, Range("B65536").End(xlUp).Row + 1)), Cells(2, 17).Value)

' If B列两邻文件夹范围 Is Nothing Then
If B列两邻文件夹范围 = "" Then
Cells.Rows.Hidden = False
Else
Range("K5:K" & IIf(Range("K65536").End(xlUp).Row < 5, 6, Range("K65536").End(xlUp).Row + 1)). _
EntireRow.Hidden = True
For I = B列两邻文件夹范围 To K列最末数据行
If Range("b" & I).Value <> "" Then
B列文件夹个数 = B列文件夹个数 + 1
If B列文件夹个数 = 2 Then
Range("a" & B列两邻文件夹范围, "q" & I - 1).EntireRow.Hidden = False
B列文件夹个数 = 0
End
End If
Else
If I = K列最末数据行 Then
If B列文件夹个数 = 1 Then
Range("a" & B列两邻文件夹范围, "q" & K列最末数据行).EntireRow.Hidden = False
B列文件夹个数 = 0
End
End If
End If
End If
Next
End If
End If
ActiveWindow.SmallScroll Down:=-65536 '进入到首行
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-13
Public Sub 隐藏()

Range("s100").Offset(1, 0).Resize(Rows.Count - Range("s100").Row, 1).EntireRow.Hidden = True

Range("s100").Offset(0, 1).Resize(1, Columns.Count - Range("s100").Column).EntireColumn.Hidden = True

End Sub

追问

我用以下代码限制了excel的可编辑区域,可是在移动并复制工作表后,限制在新的工作表中无效了,请问如何操作?,代码如下
Private Sub Workbook_Open()
ActiveSheet.ScrollArea = "A1:A100"
End Sub

相似回答