2016-08-22 5 views
0

私のクエリはExcelに関するものです。セル内の制限付きエントリのExcel vba

セルの範囲では、ユーザーはAまたはBまたはCまたはDまたはGまたはXのみを入力することが許可される必要があります。これらの細胞群はすでにデータ検証を行っています。したがって、リストオプションは使用できません。

私はこの目的のためにvbaコードを持っています。事前に

おかげ

Pasupathi

編集1:これは私のコードの残りの部分

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

は –

+0

以下の私の答えは、私はあなたの助けPLを持つことができます参照してください? – Pasupathi

+0

あなたは何を達成しようとしていますか?ユーザーがA、B、C、D、G、Xを挿入するとどうなりますか? 'If​​ wf.CountA(rLook)<2 Then Exit Sub'の行をチェックする必要がありますか? –

答えて

1

私が正しくあなたを理解している場合、あなたは資本の値のみをしたいですセルの証明範囲内の文字A、B、C、D、G、X。その場合

以下のコードを使用して、あなたの関連するシートのコードに追加:

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

Mr Shaiありがとうございます。ワークシートにはすでにvbaコードがあります。あなたのコードはこのコードとどのようにリンクできますか?あなたは私を導くことができますか? – Pasupathi

+0

ワークシートの残りの部分をあなたの投稿にアップロードするので、貼り付ける場所がわかります。または、このサブの内容をコピーして 'Worksheet_Change'イベントに追加することができます –

+0

以下は、コードの残りの部分です。Private Sub Worksheet_Change(ByVal Target As Range) Dim rLook As Range Set rLook = Range(" A14:次にA40" )WorksheetFunction として 点心WFセットWF = Application.WorksheetFunction 交差(ターゲット、rLookは)何もない場合はwf.CountA(rLook)<2が次にサブ Application.EnableEventsを終了した場合はサブ を終了します= Falseの Target.Clear MsgBox "1つのエントリのみが許可されています" Application.EnableEvents = True End Sub – Pasupathi

関連する問題