首页 > 解决方案 > 如何使用 VBA 代码根据单元格值隐藏 Excel 工作表

问题描述

如何使用下拉数据验证列表根据单元格的值隐藏 Excel 文档中的各种 Excel 工作表?

我尝试右键单击工作表并选择“查看代码”并将以下代码粘贴到弹出的 Microsoft Visual Basic for Applications 窗口中:

Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Blue" Then
Sheets("Sheet3").Visible = False
Else
Sheets("Sheet3").Visible = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Yellow" Then
Sheets("Sheet3").Visible = False
Else
Sheets("Sheet3").Visible = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Green" Then
Sheets("Sheet3").Visible = False
Else
Sheets("Sheet3").Visible = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Purple" Then
Sheets("Sheet3").Visible = False
Else
Sheets("Sheet3").Visible = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Fusia" Then
Sheets("Sheet3").Visible = False
Else
Sheets("Sheet3").Visible = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Pink" Then
Sheets("Sheet3").Visible = True
Else
Sheets("Sheet3").Visible = False
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Orange" Then
Sheets("Sheet3").Visible = True
Else
Sheets("Sheet3").Visible = False
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Cyan" Then
Sheets("Sheet3").Visible = True
Else
Sheets("Sheet3").Visible = False
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If [G1] = "Gold" Then
Sheets("Sheet3").Visible = True
Else
Sheets("Sheet3").Visible = False
End If
End Sub

我收到一条弹出消息:

以下功能无法保存在无宏工作簿中: • VB 项目 要保存具有这些功能的文件,请单击“否”,然后在“文件类型”列表中选择启用宏的文件类型。要继续另存为无宏工作簿,请单击是。

标签: excel

解决方案


弹出的意思是:您必须先将文件保存为“Excel-Macro Enabled”格式(*.xlsm)


推荐阅读