したいことを文章で明確に表現できてないのでは。
それに表題が問題点を捉えてない。ー>エクセルVBAもし同じ値なら!! なんて難しい点ではない。
この質問は、質問者が考えているのとは別の、初心者にとって、他の結構難しい問題を抱えていると思う。
ーー
改めて質問を書いてみると
Book1,Book2があって、Book1のユーザーフォームのテキストボックスに値を入れる。フォームのコマンドボタンでもクリックしたとき、
Book2のSheet1のA列に、同じ値があれば、そのコメントを表示。無ければA列最後の行の次行に、
そのテキストボックスの値を代入する。
ということか。
表現は短く、的確になるじゃないか。
ーーー
Book1の標準モジュールに
Public sh2
Sub test01()
Workbooks.Open "01化.xls"
Set sh2 = Workbooks("XXXXXX.xls").Sheets("Sheet1")
End Sub
Book2(XXXXXX.xls)を開き、使えるようにする。
Userform1のコマンドボタンのコードに
Private Sub CommandButton1_Click()
s = TextBox1.Text
d = sh2.Range("A65536").End(xlUp).Row
'MsgBox d
For i = 1 To d
If sh2.Cells(i, "A") = s Then
MsgBox "同じ値有り"
TextBox1.Text = ""
Exit Sub
End If
Next i
sh2.Cells(d + 1, "A") = "'" & s
TextBox1.Text = ""
End Sub
ーーー
ただし
Book1を開いたとき
Test01() を実行
Userform1 の表示
Book1をクローズしたときBook2のクローズ、Sh2のNothing化
が必要。
ーー
例えば
Book1のOpenイベントに
Private Sub Workbook_Open()
test01
UserForm1.Show
End Sub
がいると思う。
お礼
ありがとうございます。 返事が送れてすいませんでした。 本当にそうですよね 質問側が内容をまとめていないです。 それでも回答していただきありがとうございます。