![](/img/trans.png)
[英]Change a cell value in a sheet based on the value of another sheet cell value
[英]VBA to select sheet based on cell value of another sheet
在工作表1(viva-2)上,第11行的下拉菜單(驗證)為“是/否”。 默認情況下,值將為“ no”,並且應禁用/鎖定工作表11(Manage-d)單元格區域A11:D30。 選擇“是”,用戶應該能夠選擇Sheet11(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
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
我使用Worksheet_Change
而不是Worksheet_SelectionChange
以便用戶不必點擊其他單元格即可觸發宏。
假設下拉列表(驗證)在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.