2017-10-11 12 views
-2

私はこの質問を簡単にする必要があると思います。だからここに行く。VBAユーザーフォームで重複が見つかった場合に警告が表示されます

私はデータキャプチャフォームとして機能するExcelでユーザーフォームを作成しています。この形態で

私はこのコード

Cells(emptyRow, 7).Value = PolBX.Value

を使用して「G」欄にコピーされPolBXに配置され、このAでPolBX及び提出データで呼ばれるテキストボックスを持っています。これは素晴らしいです。

私は、ユーザーが誤って同じ一意のID番号を2回使用する可能性があることを発見しました。だから私は、ユーザーが一意のID番号を入力した後にその文字列(文字と数字で構成されているかどうか)をチェックする方法を見つけようとしています。それは第七列(G)内に既に文字列が見つかった場合、それは、私はいくつかのを支援してくださいすることができ、私は次のサブルーチン

Private Sub PolBX_AfterUpdate() 

End Sub 

を使用する必要があります考えています

"Policy number already Used, please try again"

ような何かを言わなければなりませんこのコードを作成する... また、私は約1週間前にVBAを始めたので、あなたが何をしているのか説明してください

答えて

0

遊んでいる私はもっと簡単な方法を発見しました!私はコードを添付したボタンを含めました

Private Sub CommandButton8_Click() 
Search = PolBX.Text 
Set FoundCell = Worksheets("sheet1").Columns(7).Find(Search,LookIn:=xlValues, lookat:=xlWhole) 
If FoundCell Is Nothing Then 
MsgBox "No duplicates found" 
Else 
MsgBox "This policy has already been Assessed" & "Please assess a different case" 
PolBX.Value = "" 
End If 
0

あなたのポリシー番号を検索するために次のコードを追加することができます。。

Option Explicit 

Sub Test() 

    On Error GoTo ErrHandler 

    Dim ws As Worksheet, PolLookup As Range, LookupRng As Range 
    Set ws = ThisWorkbook.Worksheets(1) 

    'This is the range you want to search, it can be a long range 
    'or it can be a single cell. 
    Set LookupRng = ws.Range("A:A") 

    'Range.Find is looking for your value in the range you specified above 
    Set PolLookup = LookupRng.Find("YourLookupValue") 

    'PolLookup = Nothing if it didn't find a match, so we want to use 
    'If <NOT> Nothing, because this suggests .Find found your value 
    If Not PolLookup Is Nothing Then 
     Err.Raise vbObjectError + 0 'Whatever error you want to throw for finding a match 
    End If 

    'Exit before you reach the ErrHandler 
    Exit Sub 
ErrHandler: 
    If Err.Number = vbObjectError + 0 Then 
     'Handle your error. Do you want to stop completely? Or have the 
     'User enter a new value? 
    End If 

End Sub 

基本的に、ユーザーがユーザーフォームに値を入力した後、クイックルックアップを行うにはこのSubを呼び出します。

+0

ここで私はこれを行う方法に関するチュートリアルを見つけることができますか? – Flaniganga

+0

[Range.Findメソッドの使用](https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-find-method-excel) –

+0

VBAの[Err.Raise Method](https://msdn.microsoft.com/en-us/library/w4t2e92e(v=v9.aspx))を使用する –

関連する問題