excel高手进来看看~!
我想问一下,像下图那种选择框是或否,然后能够实现隐藏其指定的表的功能是怎么实现的?知道的希望说的详细些,有详细的步骤,我对excel不是很懂,谢谢了...
我想问一下,像下图那种选择框是或否,然后能够实现隐藏其指定的表的功能是怎么实现的?知道的希望说的详细些,有详细的步骤,我对excel不是很懂,谢谢了
展开
展开全部
假设你的“是否显示”是在第5列(即E列),“工作底稿名称”是在第3列(即C列),该数据所在的表名是“工作底稿清单”,实现的步骤如下:
1、完成数据有效性选择“是”或“否”:选中第5列中需要用于选择“是”或“否”的单元格(如果不确定有多少,那么就整列选中,视情况而定),依次点击菜单:数据→数据有效性→(设置选项卡中的有效条件允许中)选择“序列”→(来源中)填入“是,否”→确定【注意填入的“是,否”不带双引号,中间的逗号用英文字符中的逗号】;
2、编写宏实现表格隐藏:在菜单“工具→宏”中打开Visual Basic编辑器,在左边的表对象清单中找到“工作底稿清单”双击,右边的编辑窗口中将出现输入代码的空白地方,在该空白处的上方有两个下拉框,左边一个选择“worksheet”,右边一个选择“change”,空白地方将出现以下两行内容:
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
在以上这两行内容之间的空白处粘贴入以下代码然后保存即可:
Dim strSheet As String
If Target.Column = 5 Then
strSheet = Cells(Target.Row, 3)
If Target.Value = "否" Then
Sheets(strSheet).Visible = False
Else
If Target.Value = "是" Then
Sheets(strSheet).Visible = True
End If
End If
End If
有问题可以hi我。
1、完成数据有效性选择“是”或“否”:选中第5列中需要用于选择“是”或“否”的单元格(如果不确定有多少,那么就整列选中,视情况而定),依次点击菜单:数据→数据有效性→(设置选项卡中的有效条件允许中)选择“序列”→(来源中)填入“是,否”→确定【注意填入的“是,否”不带双引号,中间的逗号用英文字符中的逗号】;
2、编写宏实现表格隐藏:在菜单“工具→宏”中打开Visual Basic编辑器,在左边的表对象清单中找到“工作底稿清单”双击,右边的编辑窗口中将出现输入代码的空白地方,在该空白处的上方有两个下拉框,左边一个选择“worksheet”,右边一个选择“change”,空白地方将出现以下两行内容:
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
在以上这两行内容之间的空白处粘贴入以下代码然后保存即可:
Dim strSheet As String
If Target.Column = 5 Then
strSheet = Cells(Target.Row, 3)
If Target.Value = "否" Then
Sheets(strSheet).Visible = False
Else
If Target.Value = "是" Then
Sheets(strSheet).Visible = True
End If
End If
End If
有问题可以hi我。
展开全部
你那个文件发给我看看,光看图说不清楚.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、使用单元格有效性来设置下拉选择框
2、使用Private Sub Worksheet_Change(ByVal Target As Range) 来捕获单元格的变动,并设置隐藏实现sheet的动作
2、使用Private Sub Worksheet_Change(ByVal Target As Range) 来捕获单元格的变动,并设置隐藏实现sheet的动作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选中 是否显示那一列——菜单——数据——有效性——序列——来源下面输入 是否 两个字,中间用英文状态下的逗号隔开——确定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个功能要用VBA.
1.数据有效性
选取要设置的单元格,单击"数据"-"有效性".在弹出的"数据有效性"对话框中的"设置"选项卡中的"允许"复合框内选择"序列",在"来源"文本框内输入"是,否",中间要逗号分隔.然后单击确定
2.设置代码
右键单击工作表标签,在弹出的右键菜单中选择"查看代码",在出现的代码编辑区复制粘贴以下代码(代码已注释):
'工作表单元格值更改时
Private Sub Worksheet_Change(ByVal Target As Range)
'如果选择单元格的行号位是1 停止程序
If Target.Row = 1 Then Exit Sub
'声明变量
Dim sht As Worksheet
'如果选择单元格的列号是5 (即E列), 执行以下语句
If Target.Column = 5 Then
'遍历所有工作表
For Each sht In Worksheets
'主条件:如果工作表标签名称等于选择单元格所对应的单元格(C列)的值
If sht.Name = Target(1, -1).Value Then
'支条件:如果选择单元格的值是"否"
If Target = "否" Then
'将工作表隐藏
sht.Visible = False
Else '否则
'将工作表显示
sht.Visible = True
End If
End If
Next
End If
End Sub
1.数据有效性
选取要设置的单元格,单击"数据"-"有效性".在弹出的"数据有效性"对话框中的"设置"选项卡中的"允许"复合框内选择"序列",在"来源"文本框内输入"是,否",中间要逗号分隔.然后单击确定
2.设置代码
右键单击工作表标签,在弹出的右键菜单中选择"查看代码",在出现的代码编辑区复制粘贴以下代码(代码已注释):
'工作表单元格值更改时
Private Sub Worksheet_Change(ByVal Target As Range)
'如果选择单元格的行号位是1 停止程序
If Target.Row = 1 Then Exit Sub
'声明变量
Dim sht As Worksheet
'如果选择单元格的列号是5 (即E列), 执行以下语句
If Target.Column = 5 Then
'遍历所有工作表
For Each sht In Worksheets
'主条件:如果工作表标签名称等于选择单元格所对应的单元格(C列)的值
If sht.Name = Target(1, -1).Value Then
'支条件:如果选择单元格的值是"否"
If Target = "否" Then
'将工作表隐藏
sht.Visible = False
Else '否则
'将工作表显示
sht.Visible = True
End If
End If
Next
End If
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询