Dvě ověření dat ve stejné buňce

0

Otázka

Musím provést ověření dat pro uživatele don ' t misstype informace, že jde do databanky. Informace v buňce, musí být naplněny dvě podmínky, první část je status pracovníka, a druhá informace, hned poté, ve stejné buňce je de smlouvu kód, který pracuje na. Jak mohu provést ověření dat se tyto dva údaje zlikvidovat ve dvou různých tabulek? Zkoušel jsem něco jako =A(ZLEVA(K3:Q999;4)=S3:S13;DOPRAVA(K3:Q999;2)=S15:S49)

zadejte popis obrázku zde

database datatable excel formula
2021-11-23 14:14:08
1

Nejlepší odpověď

-1

To vše závisí na tom, jak chcete použít ověřování.

Pokud chcete, aby to bylo v buňce v rozbalovací pak standardní validace bude fungovat pouze pokud máte všechny kombinace, je možné v jeho vlastním rozsahu, např. ...

19Exec
19Folg
19Disp
...
33Exec
33Folg
33Disp
... 
etc.

Pokud chcete, můžete vždy udělat to pomocí VBA. Pozor ale, tím se platnost undo zásobníku a bude pravděpodobně muset být zdokonalen, aby bylo zajištěno, že je ideální pro všechny scénáře. Je to velmi mnoho možností.

Potřebujete změnit kód, aby vám vyhovoval. Je to holé kosti a práce v základní smysl.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngIntersect As Range, objCell As Range, strPrefix As String, strSuffix As String
    Dim lngIndexSuffix As Long, lngIndexPrefix As Long
    
    ' Safety net, remove if you think this won't be a problem.
    If Target.Cells.Count > 1000 Then Exit Sub
    
    For Each objCell In Target
        Set rngIntersect = Application.Intersect(objCell, Range("ValidationRange"))
        
        If Not rngIntersect Is Nothing Then
            If Len(objCell.Text) = 0 Then
                ' Only continue if the cell isn't empty.
                Target.Interior.ColorIndex = -4142
            Else
                strSuffix = Right(objCell.Text, 4)
                strPrefix = Mid(objCell.Text, 1, Len(objCell.Text) - Len(strSuffix))

                Err.Clear
                
                On Error Resume Next
                
                lngIndexPrefix = WorksheetFunction.Match(CInt(strPrefix), Range("Range1"), 0)
                lngIndexSuffix = WorksheetFunction.Match(strSuffix, Range("Range2"), 0)
                
                If Err.Description <> "" Then
                    Target.Interior.Color = 255
                Else
                    Target.Interior.ColorIndex = -4142
                End If
                
                On Error GoTo 0
            End If
        End If
    Next
End Sub

Aby to fungovalo, vytvořit pojmenovanou oblast na oba klíčové sloupce vyhledávací tabulky. Čísla (tj. 19, 33, 43, etc.) Jsem pojmenoval "Range1" a 4 znak slova (např. Exec, Folg, Disp, atd.) Jsem pojmenoval "Range2".

Pro rozsah buněk, které chcete spustit ověření, volal jsem, že "ValidationRange".

Hodit to makro do sešitu, který má rozsah, který chcete ověřit a uvidíme, jak to půjde.

2021-11-23 23:24:43

Děkuji!!!! Přemýšlel jsem v něco takového. Budu se snažit. Ještě jednou děkuji!
Henrique Monteiro

@HenriqueMonteiro, věděli, že pracovat pro vás?
Skin

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................