Unik Navn Entry, Take Two

February 8  by Eliza

Chris bruker en datavalidering teknikk som med hell stopper ikke-unike informasjon blir skrevet inn i en kolonne. (Denne teknikken ble beskrevet i tidligere utgaver av ExcelTips.) Han rettmessig påpeker at det fortsatt er et problem med datavalidering, men: Noen kan lime inn informasjon i en celle og hell omgå alle kontrollene på plass.

For eksempel, hvis du skriver "George" i celle A8, og skriv "George" i A9 da, vil vanlig datavalidering generere en feil, som man ville forvente, noe som indikerer at verdien du prøver å gå inn er ikke unikt. Men hvis du skriver "George" i celle A8, kopiere denne cellen og lim den inn i celle A9, er ingen datavalidering feil utløst - pastaen er tillatt.

Det er ingen direkte vei rundt dette i Excel. Du kan imidlertid føre til at Excel til å gjøre noen kontroll når du prøver å gjøre en lime. Vurdere følgende makro:

Private Sub Worksheet_SelectionChange (ByVal Target As Range)
On Error Resume Next
For Hver TmpRng I Target
TmpVal = TmpRng.Validation.Type
Hvis TmpVal> 0 Then
Hvis Application.CutCopyMode = 1 Da
MsgBox "Du kan ikke lime inn validerte celler."
Application.CutCopyMode = False
Exit Sub
End If
End If
Neste
End Sub

Denne makroen er bare kjøre Når valget av endringer i et regneark. (Denne koden må være i kodevinduet for et regneark.) Den undersøker målet celler (de som blir valgt), og hvis brukeren prøver å lime inn i en celle som har validering aktiv, vil det ikke tillate det. Videre vil brukeren se en dialogboks som viser feilen.

Du bør være oppmerksom på at denne rutinen sjekker bare for å se om lime inn i en data-validert celle blir gjort. Hvis det er, så en feil genereres. Rutinen sjekker ikke for å se om hva som blir limt er faktisk tillatt under valideringsregler i målet celler; som ville være mye mer komplisert og krever ganske mye mer koding.

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (2449) gjelder for Microsoft Excel 97, 2000, 2002, og 2003.