Excel 用宏隐藏和取消隐藏某行

一个下拉菜单两个选项对应A1分别等于1或者2.。
当选择下拉菜单第一个选项时(A1=1),隐藏第2~5行,取消隐藏第6~8行;
当选择下拉菜单第二个选项时(A1=2),取消隐藏第2~5行,隐藏第6~8行;
Private Sub Worksheet_Calculate()
If Range("A1") = 1 Then
Rows("2:5").Select
Selection.EntireRow.Hidden = True
Rows("6:8").Select
Selection.EntireRow.Hidden = False
ElseIf Range("A1") = 2 Then
Rows("2:5").Select
Selection.EntireRow.Hidden = False
Rows("6:8").Select
Selection.EntireRow.Hidden = True
End If
End Sub

这个为什么不行啊?

工具/材料:Microsoft Office Excel2007版,Excel表格。 

1、首先选中Excel表格,双击打开。 

2、然后在该界面中,显示第三行被隐藏。

3、再者在该界面中,右键点击“查看代码”选项。 

4、其次在宏界面中,输入宏代码“Sub Macro1()  Rows("3:3").Select Selection.EntireRow.Hidden = False Rows("4:4").Select Selection.EntireRow.Hidden = True End Sub”。 

5、继续在宏界面中,点击“执行”按钮。 

6、最后在该界面中,显示第三行显示,第四行被隐藏。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-08

比如说要隐藏第10行,然后再取消隐藏第10行。

为了大家更方便学习编写VBA。用记录宏的方法来做。

第一步:点击开发工具-记录宏图标。如图:

第二步:选择第10行,选择隐藏。

第三步:点击停止录制图标。

查看录制的宏如下:

Sub Macro1()

' Macro1 Macro

    Rows("10:10").Select

    Selection.EntireRow.Hidden = True

End Sub


同样可以生成取消隐藏的宏。如下:

Sub Macro3()

'

' Macro3 Macro

    Rows("9:11").Select

    Selection.EntireRow.Hidden = False

End Sub

大家看了这个过程,是否觉得这EXCEL vba也不难学吧。

第2个回答  推荐于2017-10-03
Private Sub Worksheet_Calculate()
换成
Private Sub Worksheet_Change(ByVal Target As Range)
--------
整个程序可以换成:
Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Target
If c.Address = [A1].Address Then GoTo 100
Next
Exit Sub
100:
If [A1].Value = 1 Then
Rows("2:5").Hidden = True
Rows("6:8").Hidden = False
ElseIf [A1].Value = 2 Then
Rows("2:5").Hidden = False
Rows("6:8").Hidden = True
End If
End Sub追问

谢谢您的回答。。。不过试了一下,手动改A1的值,就可以,但选择下拉菜单去改变A1的值,就没反应了~请问怎么改啊

追答

下拉菜单 是数据有效性吗?我的可以动的啊,Hi我,这样追问太累

本回答被提问者采纳