如果花片上的单元格满足条件,则隐藏片

时间:2018-09-16 15:25:17

标签: excel vba

我正在尝试编写一个宏,该宏将在“主页”工作表上的引用单元格突出显示为绿色时隐藏工作表。

尝试If语句:

Dim Archive As String
Archive = ActiveSheet.Name
If Sheets("Home").Range("$A:$1).Value = Archive And Sheets("Home") _
    .Range("$A:$1).Interior.Color = vbGreen Then
ActiveSheet.Hide
End If

我要引用的工作表和单元格具有相同的名称。单元格超链接到工作表。工作表和具有超链接的单元格都是由另一个宏创建的。

我无法在If语句中标识特定的单元格,因为该单元格会因我要隐藏的工作表而有所不同。

1 个答案:

答案 0 :(得分:0)

希望这可以帮助您

您可以创建一个模块并将以下方法粘贴到那里。

Sub checkRef(ByVal shtName As String)
Dim archive As String
archive = shtName
If Sheets("Home").Range("A1").Value = archive And Sheets("Home").Range("A1").Interior.Color = vbGreen Then
    ActiveSheet.Visible = False
Else
    MsgBox "Activesheet not referenced to hide"
End If
End Sub

您可以根据需要编辑以上内容。

然后在您要隐藏的工作表的 Worksheet_Activate 事件上,调用上述方法,如下所示。

Private Sub Worksheet_Activate()
checkRef (ActiveSheet.Name)
End Sub

然后,您可以通过将首页工作表的Range(“ A1”)的值更改为要隐藏的工作表的名称并将内部颜色更改为 vbGreen来检查结果

您必须能够隐藏工作表。