Можно ли увеличить лимит в 256 символов в раскрывающихся списках проверки Excel?

Я создаю проверку динамически и достиг предела в 256 символов. Моя проверка выглядит примерно так:

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

Есть ли способ обойти ограничение на количество символов, кроме указания на диапазон?

Проверка уже выполняется в VBA. Увеличение предела - самый простой способ избежать влияния на текущую работу листа.

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
4
0
7 672
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я почти уверен, что невозможно обойти ограничение в 256 символов, - объясняет здесь Джоэл Спольски: http://www.joelonsoftware.com/printerFriendly/articles/fog0000000319.html.

Однако вы можете использовать VBA, чтобы приблизиться к репликации функциональности встроенной проверки, кодируя событие Worksheet_Change. Вот макет, чтобы дать вам представление. Вероятно, вы захотите реорганизовать его, чтобы кэшировать 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

Другие вопросы по теме