VBA根据另一个工作表的单元格值select工作表

在工作表1(viva-2)第11行有一个下拉(validation)与是/否。 默认情况下,值为“否”,表11(Manage-d)单元格区域A11:D30应该被禁用/locking。 select“是”,用户应该能够selectSheet11(Manage-d),并且范围A11:D30中的单元格应该被解锁。

我是VBA新手,但我正在努力学习。

Public Sub Worksheet_SelectionChange(ByVal Target As Range) Dim RNG As Range If Target.Row = 11 Then If Range("11").Value = "YES" Then Sheets("Manage-d").Select Sheets("Manage-d").Range("A11:D30").Locked = False Sheets("Manage-d").Range("A11:D30").Activate Else Sheets("Manage-d").Range("A11:D30").Locked = True End If End If 

我使用Worksheet_Change而不是Worksheet_SelectionChange以便用户不必ciack另一个单元格来触发macros。

假设下拉(validation)在Range("A11")

  Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A11")) Is Nothing Then With Sheets("Manage-d") .Range("A11:D30").Locked = (UCase(Target.Value) = "NO") If UCase(Target.Value) = "YES" Then Application.Goto .Range("A11:D30"), True End If End With End If End Sub 

在这里输入图像说明

Range对象表示单个单元格或一系列单元格。此代码正在为我工​​作

  If Range("A1").Value = "YES" Then '' Range A1 is the first cell Sheets("Manage-d").Select Sheets("Manage-d").Range("A11:D30").Locked = False Sheets("Manage-d").Range("A11:D30").Activate Else Sheets("Manage-d").Range("A11:D30").Locked = True End If