Single Cell Worksheet_Calculate
Ячейка I3
используется вместо ячейки на другом листе, то есть формула в K3: =I3
.
введите описание изображения здесь
введите описание изображения здесь
Для правильной работы необходимо использовать все три кода. Отрегулируйте Sheet1
дюйм Public Const TargetSheet As String = "Sheet1"
соответствующим образом.
Стандартный код модуля, например, Module1
Option Explicit
Public TargetValue As String
Public Const TargetCell As String = "K3"
Public Const TargetSheet As String = "Sheet1"
Sub HideShowRows(Sheet As Worksheet)
Dim rng As Range
With Sheet
Set rng = Union(.Rows("33"), .Rows("37:38"), .Rows("45:46"))
Select Case .Range(TargetCell).Value
Case "Full_FC_powered": rng.EntireRow.Hidden = True
Case "FC_for_hotel", "DG_for_transit": rng.EntireRow.Hidden = False
End Select
TargetValue = .Range(TargetCell).Value
End With
End Sub
Код ThisWorkbook
Option Explicit
Private Sub Workbook_Open()
TargetValue = Worksheets(TargetSheet).Range(TargetCell).Value
HideShowRows Worksheets(TargetSheet)
End Sub
Код листа, например Sheet1
Option Explicit
Private Sub Worksheet_Calculate()
If Range(TargetCell).Value <> TargetValue Then
HideShowRows Me
End If
End Sub
' The following in this case are the same:
' If Range(TargetCell).Value <> TargetValue Then
' HideShowRows Me
' End If
' If Worksheets(TargetSheet).Range(TargetCell).Value <> TargetValue Then
' HideShowRows Worksheet(TargetSheet)
' End If