アプリ版:「スタンプのみでお礼する」機能のリリースについて

Dim motohi As Range
Dim mykane As Object

For Each motohi In Range("D53:D59") 'セル範囲はデータベースの日付蘭

Set hyou = Range("D33:D47").Find(motohi, , , xlWhole)     '表の同じ日付を探す

『 Set mykane = Cells(mykane, 6).Row』      '行番号取得

If hyou Is Nothing Then
MsgBox "見つかりませんでした"

Else

MsgBox hyou.Offset(, 1).Address
MsgBox mykane       '行番号表示

End If
Next

上記の、鍵カッコ部分で「実行時エラー13、型が一致しません」となります。従って、下の「行番号表示」の MsgBoxが取得できません。

A 回答 (3件)

本来、ループの中で、MsgBox をその都度立てるというのは意味がないように思います。


『 Set mykane = Cells(mykane, 6).Row』 '行番号取得
mykane というのはどこから出たものでしょうか?

以下はあくまでも想像から作られたものです。
'---------------------
 Dim motohi As Range
 Dim mykane As Long
 Dim hyou As Object

 For Each motohi In Range("D53:D59") 'セル範囲はデータベースの日付蘭
  Set hyou = Range("D33:D47").Find(motohi, , , xlWhole) '表の同じ日付を探す
  '『 Set mykane = Cells(mykane, 6).Row』 '行番号取得
  '★ここは見つかった条件で成り立つコードではありませんか。Else以下に入れる
  '
  If hyou Is Nothing Then
   MsgBox "見つかりませんでした"
  Else
   mykane = hyou.Row '行番号取得  '★
   MsgBox hyou.Offset(, 1).Address
   MsgBox mykane '行番号表示
  End If
 Next
    • good
    • 0
この回答へのお礼

その通りでした。おかげ様で三人様のご指導を合わせる形で解決しました。
ご指摘のとおりMSGBOXは意味なくテスト結果を見るためで、最終的にはデータベースから別表蘭の該当日付を探し、オフセットで貼り付けるのが目的で、そこまでご教示いただくのはおこがましいと思いました。これでFINDメソッドを会得できました。ありがとうございました。

お礼日時:2019/06/23 10:26

行番号の代入にSetステートメントは使わないかと。

    • good
    • 0
この回答へのお礼

その通りでした。おかげ様で三人様のご指導を合わせる形で解決しました。
ありがとうございます

お礼日時:2019/06/23 10:12

こんにちは



処理内容はほとんどわかりませんが・・・

>実行時エラー13、型が一致しません
当該行の、右辺は Cells().Row なので、Long型の数値になります。
ですので、数値変数かVariantの変数などに代入すれば宜しいかと。
    • good
    • 0
この回答へのお礼

その通りでした。おかげ様で三人様のご指導を合わせる形で解決しました。
ありがとうございます。

お礼日時:2019/06/23 10:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!