【问题标题】:Excel VBA - Select Multiple Values Drop Down ValidationExcel VBA - 选择多个值下拉验证
【发布时间】:2018-04-26 11:24:33
【问题描述】:

对于我遇到的问题,我将不胜感激。以下代码示例允许我从下拉列表中选择多个值,但是我需要 target.address 是列 S 中的每一行。

我不确定如何更改目标地址,使其成为从 s10 开始的范围(即 S10-S150)

Private Sub Worksheet_Change(ByVal Target As Range)


Dim Oldvalue As String
Dim Newvalue As String

On Error GoTo Exitsub
If Target.Address = "$S10" Then
    If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
    GoTo Exitsub
    Else: If Target.Value = "" Then GoTo Exitsub Else
        Application.EnableEvents = False
        Newvalue = Target.Value
        Application.Undo
        Oldvalue = Target.Value
        If Oldvalue = "" Then
            Target.Value = Newvalue
        Else
            Target.Value = Oldvalue & ", " & Newvalue
        End If
    End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub

谢谢!

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您可以像这样测试以查看受影响的范围是否在另一个范围内:

    If Not Intersect(Target, Range("S10:S150")) Is Nothing Then
    

    上面的行将替换原始代码中的这一行:

    If Target.Address = "$S10" Then
    

    【讨论】:

    • 感谢您的回复,不幸的是,在替换上述代码中的行时出现语法错误。
    • 你知道这是为什么吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2018-04-24
    相关资源
    最近更新 更多