Excel VBA는 드롭다운 셀 값에 따라 다른 드롭다운 셀 값을 변경합니다.

8083 단어
많은 보고서 개발에서 VBA를 사용하여 Excel의 규칙을 설정해야 한다. 
다음은 드롭다운 상자 셀의 값에 따라 특정 셀에 값을 부여하는 코드입니다.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next:
    Application.ScreenUpdating = False
    If Target.Column = 7 Then        //  DDL 
        If Target.Offset(0, -2).Value = 13 Then  // 
            With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
             xlBetween, Formula1:="No"   // No
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .IMEMode = xlIMEModeNoControl
            .ShowInput = True
            .ShowError = True
            End With
        ElseIf Target.Offset(0, -2).Value <> 13 Then
            With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
             xlBetween, Formula1:="=Exp"  // Exp (Formulas -〉Name managers ) 
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .IMEMode = xlIMEModeNoControl
           .ShowInput = True
            .ShowError = True
            End With
        End If
    ElseIf Target.Column = 8 Then   // , 7 No , 8,910,11 
        If Target.Offset(0, -1).Value = "No" Then
            Target.Locked = True
            Target.Offset(1, -6).Select
        End If
    ElseIf Target.Column = 9 Then
        If Target.Offset(0, -2).Value = "No" Then
            Target.Locked = True
            Target.Offset(1, -7).Select
        End If
    ElseIf Target.Column = 10 Then
        If Target.Offset(0, -3).Value = "No" Then
            Target.Locked = True
            Target.Offset(1, -8).Select
        End If
    ElseIf Target.Column = 11 Then
        If Target.Offset(0, -4).Value = "No" Then
            Target.Locked = True
            Target.Offset(1, -9).Select
        End If
    End If
    Application.ScreenUpdating = True
     
End Sub

 
다음으로 전송:https://www.cnblogs.com/Aaron-Lee/p/9962690.html

좋은 웹페이지 즐겨찾기