|
▼G-Luck さん:
早速試してみました。うまくいきました。
ありがとう御座います。
そこで、隣のC列も条件に入れようとしたのですが、うまくいきません。
C列には同じ数値があるのに入力してしまいます。
どこがおかしいのか教えて下さい。
宜しくお願いします。
Private Sub test()
Const myMessage As String = "同じ値が入力されています"
Dim rg As Range
Set rg = Range("B:B").Find(TextBox.Value)
If rg Is Nothing Then
Set rg = Range("C:C")Find(TextBox.Value)
If rg As Nothing Then
'代入処理
Else
MsgBox myMassage
End If
Else
MsgBox myMessage
End If
End Sub
>▼たかし さん:
>>はじめまして。
>>VBA初心者で、分からないことだらけなのですが、本を見ながらがんばってます。
>>
>>UserformにあるTextBoxに数字が入力されて、CommandButtonクリックで、A列の
>>下から検索し文字が入力されているセルの1行下に通し番号を入力し、同じ行のB列に
>>TextBoxの値を入力するマクロを作りました。
>>この入力された数値がB列にすでに入力されていた場合にMesBoxを出し、A列、B列の
>>数値を削除したいのですが、どうすればいいのでしょうか?
>>
>>宜しくお願いします。
>
>値を代入する前に、判定をもうけて同じ値が無い場合に代入するというようにしてはいかがでしょうか?
>
>サンプルコードは最後に示します。
>
>解説をつけますと
> Set rg = Range("B:B").Find(TextBox.Value)
>B:Bの範囲でTextBoxと同じ値のセル(複数ある場合は最初のセル)をrgに代入する
>
> rg Is Nothing
>Nothingは、何も代入されていない状態なので、
>rgに何も入力されていない場合、Trueを返します。(オブジェクト比較)
>
>Private Sub test()
>
> Const myMessage As String = "同じ値が入力されています"
> Dim rg As Range
>
> Set rg = Range("B:B").Find(TextBox.Value)
> If rg Is Nothing Then
> '代入処理
> Else
> MsgBox myMessage
> End If
>End Sub
|
|