2016-08-22 2 views
0

Meine Abfrage bezieht sich auf Excel.Excel VBA für eingeschränkten Eintrag in Zellen

In einer Reihe von Zellen sollte der Benutzer nur A oder B oder C oder D oder G oder X eingeben dürfen. Diese Gruppe von Zellen hat bereits eine Datenvalidierung. Daher kann die Listenoption nicht verwendet werden.

Pl lassen Sie mich den VBA-Code für diesen Zweck haben.

Vielen Dank im Voraus

Pasupathi

Edit 1: Dies ist der Rest meines Code

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim rLook As Range 

Set rLook = Range("A14:A40") 
Dim wf As WorksheetFunction 
Set wf = Application.WorksheetFunction 

If Intersect(Target, rLook) Is Nothing Then Exit Sub 

If wf.CountA(rLook) < 2 Then Exit Sub 

Application.EnableEvents = False 
Target.Clear 
MsgBox "Only one entry allowed" 
Application.EnableEvents = True 

End Sub 
+0

siehe meine Antwort unten –

+0

Kann ich Ihre Hilfe pl haben? – Pasupathi

+0

Was versuchen Sie zu erreichen? Wenn der Benutzer A, B, C, D, G, X einfügt, was soll passieren? dann sollte es die Zeile nach 'If wf.CountA (rLook) <2 Then Exit Sub 'überprüfen? –

Antwort

1

Wenn ich Sie richtig verstanden habe, wollen Sie nur Werte von Kapital Buchstaben A, B, C, D, G, X in einer bestimmten Anzahl von Zellen.

In diesem Fall verwenden Sie den Code unten und fügen Sie sie relevanten Blatt-Code:

Private Sub Worksheet_Change(ByVal Target As Range) 

Dim WatchRange     As Range 
Dim IntersectRange    As Range 

' modify here to the Range you need monitored 
Set WatchRange = Range("A1:C10") 
Set IntersectRange = Intersect(Target, WatchRange) 

If Not IntersectRange Is Nothing Then 
    Select Case Target.value 
     Case "A", "B", "C", "D", "G", "X" 
      ' do something here ... 

     Case Else 
      MsgBox "Only A , B, C, D, G, X are allowed" 

    End Select 
Else 
    'Do Nothing in Else 

End If  

End Sub 
+0

Danke Herr Shai. Ich habe bereits einen VBA-Code im Arbeitsblatt. Wie kann Ihr Code mit diesem Code verknüpft werden? Kannst du mich führen? – Pasupathi

+0

Laden Sie den Rest Ihres Arbeitsblattcodes in Ihren Post hoch, damit ich sehen kann, wo Sie ihn einfügen können. Oder Sie können den Inhalt dieses Subs kopieren und zu Ihrem 'Worksheet_Change'-Event hinzufügen –

+0

Der folgende Code ist der Rest des Codes Private Sub Worksheet_Change (ByVal Target als Bereich) Dim rLook als Bereich Set rLook = Range (" A14: A40") Dim wf Als Work Set wf = Application.WorksheetFunction Wenn Intersect (Target, rLook) Ist Nothing Then Sub verlassen Wenn wf.CountA (rLook) <2 Then Exit Sub Application.EnableEvents = false Target.Clear MsgBox "Nur ein Eintrag erlaubt" Application.EnableEvents = True End Sub – Pasupathi

Verwandte Themen