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