У меня есть объект (то есть прямоугольник под названием «Форма») в электронной таблице, который я хотел бы скрыть на основе значения ячейки (A1). Вот что я пробовал после поиска в Интернете, но это не работает. Прошу прощения, я ни в коем случае не специалист по VBA. Обычно я могу разобраться, основываясь на поиске в Интернете, но этот ставит меня в тупик.
Private Sub HideShape(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 Then _
Me.Shapes("Shape").Visible = (Cells(1, 1).Value = 1)
End Sub
На самом деле у меня есть шесть объектов, которые я хочу обрабатывать аналогичным образом на основе шести значений ячеек. Вот код, который я пробовал:
Private Sub Worksheet_Calculate()
Me.Shapes("ProjMgmt").Visible = (Me.Cells(101, 3).Value = 0)
Me.Shapes("Planning").Visible = (Me.Cells(102, 3).Value = 0)
Me.Shapes("Implementation").Visible = (Me.Cells(103, 3).Value = 0)
Me.Shapes("Supplier").Visible = (Me.Cells(104, 3).Value = 0)
Me.Shapes("Process").Visible = (Me.Cells(105, 3).Value = 0)
Me.Shapes("Customer").Visible = (Me.Cells(106, 3).Value = 0)
End Sub
Он работает с одной формой, но не работает с этими шестью формами.
Worksheet_Change
? Если это так, вы не можете изменитьWorksheet_Change
наHideShape
. - person BigBen   schedule 27.03.2020HideShape
обратно наWorksheet_Change
. - person BigBen   schedule 27.03.2020Worksheet_Calculate
вместоWorksheet_Change
. - person BigBen   schedule 27.03.2020C101:C106
? - person BigBen   schedule 27.03.2020Debug.Print Me.Cells(101, 3).Value
и так далее, чтобы, возможно, увидеть, каково их значение на самом деле. - person BigBen   schedule 27.03.2020