VBAを一か月前に勉強し始めた初心者です。
当り前すぎることをお聞きしてるかもしれませんが、もしよろしければ回答お願い致します。
findメソッドを使用しようと思い、コードを書いたのですが、返り値がセルアドレスではなく、セルに入力されている値が返ってきてしまいます。
私が勉強しているサイトをはじめ、どのサイトを見ても、findメソッドではレンジオブジェクトが返り値となり、セルアドレスが返ってくるものと記載されているので、
どうして私のコードだと、セルの値が返ってきてしまうのかが、分かりません。
私が書いたコードは以下になります。
VBA
1Sub findPractice() 2 3Dim foundCD As Range 4Set foundCD = Sheet3.Cells.find(What:=1111, Lookat:=xlWhole) 5 6MsgBox foundCD 7 8End Sub
実際のシートには 1111 が B4 セルに入力されています。しかし上記のコードでは、B4 がメッセージボックスに出力されるのではなく、 1111 がメッセージボックスに出力されてしまいます。
また、findメソッドのように検索する方法として、 ワークシート関数の Match関数 を使う手段もあるということでそれも試しましたが、それもfindメソッドと同じように、セルアドレスではなく、セルの値が返り値となってしまいました。
そのMatch関数を使った際のコードが以下になります。
VBA
1Sub matchPractice() 2 3Dim matchColumn As Long 4Dim foundCD As Range 5matchColumn = WorksheetFunction.Match(1111, Range("B:B"), 0) 6Set foundCD = Sheet3.Cells(matchColumn, 2) 7 8MsgBox foundCD 9 10End Sub
私のコードが何か間違ってるとは思うのですが、何が間違っているのか分からないのが現状です。
教えて頂けないでしょうか。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/01 22:54