我正在尝试编写一个宏,该宏将在“主页”工作表上的引用单元格突出显示为绿色时隐藏工作表。
尝试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语句中标识特定的单元格,因为该单元格会因我要隐藏的工作表而有所不同。
答案 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来检查结果。
您必须能够隐藏工作表。