利用VBA代码实现自动隐藏、显示指定Excel工作表

'错误1004,Visible作用于对象失败,图中黄色区域
Private Sub CommandButton2_Click()
Dim str5 As String
Dim x As Long
For x = 2 To 10
If Sheet3.Cells(x, 2).Value = "" Then Exit Sub
str5 = Sheet3.Cells(x, 10).Value
If str5 = "AIRC" Then Sheet1.Visible = xlSheetVisible '显示工作表
Next
End Sub
我想实现的是一开始我将一些工作表隐藏起来,当满足某一条件是我按下命令按钮隐藏的某个工作表就显示出来

Private Sub CommandButton2_Click()
Dim str5 As String
 Dim x As Long
      For x = 2 To 10
          If Sheet3.Cells(x, 2).Value = "" Then Exit Sub
          str5 = Sheet3.Cells(x, 10).Value
          If str5 = "AIRC" Then Sheet1.Visible =1 '显示工作表
      Next
End Sub

If str5 = "AIRC" Then Sheet1.Visible =1 '显示工作表  你是试一下这样改。

或者改成  善良的猪头3

If str5 = "AIRC" Then Sheet1.Visible =true '显示工作表

这样的代码,试试。

追问

不知道您用过myexcel不,我是要在excel网络平台上添加这个VBA的。。。它在模板状态下是可以将隐藏的显示出来。。但在填表的是时候就出错了。。。

追答

我想了一下,出现你这个问题的一种可能就是工作簿保护了,并且是保护结构了。

如果你保护工作簿 ,不要 保护结构,如下图。


来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-03
    Dim x As Integer
    With sheet3
        For x = 2 To 10
            If .Cells(x, 2).Value = "" Then Exit Sub
            If .Cells(x, 10).Value = "AIRC" Then Sheet1.Visible = xlSheetVisible: Exit Sub
        Next
    End With

第2个回答  2014-03-03
1 根据你代码和sheet1属性窗口内容来看,sheet1没有隐藏,代码中却要他显示,这样就出错了
2 代码应该没有问题
3 在工作簿打开事件中添加下面代码
Private Sub Workbook_Open()
Sheets(1).Visible = xlSheetVeryHidden
End Sub
第3个回答  2014-03-03
Private Sub CommandButton2_Click()
Dim str5 As String
Dim x As Long
For x = 2 To 10
If Sheet3.Cells(x, 2).Value = "" Then Exit Sub
str5 = Sheet3.Cells(x, 10).Value
If str5 = "AIRC" Then Sheet1.Visible =true '显示工作表
Next
End Sub

就改这句 If str5 = "AIRC" Then Sheet1.Visible =true '显示工作表本回答被网友采纳
第4个回答  2014-03-03
这条语句没什么问题,应该是工作簿被保护了
相似回答