当前位置:  开发笔记 > 后端 > 正文

是否可以在Excel验证下拉框中增加256个字符的限制?

如何解决《是否可以在Excel验证下拉框中增加256个字符的限制?》经验,为你挑选了1个好方法。

我正在动态创建验证并达到256个字符的限制.我的验证看起来像这样:

Level 1, Level 2, Level 3, Level 4.....

有没有办法绕过字符限制,然后指向一个范围?

验证已在VBA中生成.增加限制是避免对工作表当前工作方式产生任何影响的最简单方法.



1> Graham..:

我很确定没有办法绕过256个字符的限制,Joel Spolsky在这里解释了原因:http://www.joelonsoftware.com/printerFriendly/articles/fog0000000319.html.

但是,您可以通过编写Worksheet_Change事件来使用VBA来接近复制内置验证的功能.这是一个模拟给你的想法.您可能希望重构它以缓存ValidValues,处理对单元格范围的更改等...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValidationRange As Excel.Range
Dim ValidValues(1 To 100) As String
Dim Index As Integer
Dim Valid As Boolean
Dim Msg As String
Dim WhatToDo As VbMsgBoxResult

    'Initialise ValidationRange
    Set ValidationRange = Sheet1.Range("A:A")

    ' Check if change is in a cell we need to validate
    If Not Intersect(Target, ValidationRange) Is Nothing Then

        ' Populate ValidValues array
        For Index = 1 To 100
            ValidValues(Index) = "Level " & Index
        Next

        ' do the validation, permit blank values
        If IsEmpty(Target) Then
            Valid = True
        Else
            Valid = False
            For Index = 1 To 100
                If Target.Value = ValidValues(Index) Then
                    ' found match to valid value
                    Valid = True
                    Exit For
                End If
            Next
        End If

        If Not Valid Then

            Target.Select

            ' tell user value isn't valid
            Msg = _
                "The value you entered is not valid" & vbCrLf & vbCrLf & _
                "A user has restricted values that can be entered into this cell."

            WhatToDo = MsgBox(Msg, vbRetryCancel + vbCritical, "Microsoft Excel")

            Target.Value = ""

            If WhatToDo = vbRetry Then
                Application.SendKeys "{F2}"
            End If

        End If

    End If

End Sub

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有