2017-05-24 3 views
0

とにかく、sheet2列Aの値をsheet1 columnAにある値に制限できますか?ユーザーがsheet1 columnAに見つからないsheet2列Aの値を入力すると、msgboxが表示され、入力を制限します。おそらくこのためにVBAを使用しますか?VBAでsheet2列Aの入力をsheet1列の同じ値に制限するA

ありがとうございます!

答えて

0

これをsheet2モジュールに入れます。

Private Sub Worksheet_Change(ByVal Target As Range) 

If Target.Column = 1 Then 
    LastRow = Sheet1.UsedRange.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 

    With Sheet1.Range("a1:a" & LastRow) 
     Set c = .Find(Target, LookIn:=xlValues) 
     If Not c Is Nothing Then 
      Exit Sub 
     End If 
    End With 
    Application.EnableEvents = False 
    Beep 
    MsgBox Target & " is not found in Sheet1 Column A" 
    Target = "" 
    Application.EnableEvents = True 

End If 
End Sub 
+0

ありがとうございました!よく働く!シート1の列Aの他のすべての行を選択する方法を知っていますか?列A(sheet1)に入力があるので、新しい行はコメントであり、入力してからコメントを再度入力します。 –

+0

オハイオ州ジョン、私は、sheet1がitem1を検索するのに、sheet2が約15秒かかることに気付く。それをスピードアップする方法があるかどうか知っていますか?コードが検索する必要がある最後の行は、何かが入力された最後の行です。 –

+0

.findメソッドは私が知っている中で最も速い検索方法です。シート1に使用されている行の数。検索ごとに15秒かかるためには、多くの行が必要です。他の何かがそれを遅くしているかもしれません。しかし、いいえ、.findメソッドを他のすべての行で検索する方法はわかりません。たぶんあなたは配列にsheet1.column "A"のすべてのデータを入れてみてください - そして配列を検索してください。これは、.findメソッドより高速な唯一の方法です。私が見てみましょう。奇数行と偶数行のコメントのデータはありますか? –

関連する問題