簡體   English   中英

VBA根據另一個工作表的單元格值選擇工作表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM