Er det mulig å øke 256 tegn i excel validering drop down bokser?

stemmer
4

Jeg skaper validering dynamisk og har truffet en 256 tegn. Min validering ser omtrent slik ut:

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

Er det noen måte å komme seg rundt tegn andre deretter peker på en rekke?

Valideringen er allerede blitt produsert i VBA. Øke grensen er den enkleste måten å unngå noen innvirkning på hvordan arket fungerer i dag.

Publisert på 18/09/2008 klokken 03:50
kilden bruker
På andre språk...                            


1 svar

stemmer
6

Jeg er ganske sikker på at det ikke er noen vei rundt 256 tegn, forklarer Joel Spolsky hvorfor her: http://www.joelonsoftware.com/printerFriendly/articles/fog0000000319.html .

Du kan imidlertid bruke VBA til å komme nær replikere funksjonaliteten innebygd validering av koding Worksheet_Change hendelsen. Her er en mock opp for å gi deg den ideen. Du vil sannsynligvis ønske å refactor det å cache de ValidValues, håndtere endringer i celleområder, osv ...

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
Svarte 19/09/2008 kl. 18:23
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more