掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
検索値が複数ある場合FINDNEXTを利用する時にエラー。。。。。 (ID:122085)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
検索値が複数ある場合にはFINDの関数を使いました。loopとFINDNEXTを利用する時に、2回目検索すると、検索結果がNOTHINGとなってるので、エラーメッセージは「オブジェクト変数またWITHブロック変数が設定されてません」でした。原因わからないですので、助けてください。 With Range(Cells(明細配管のクラスNO行数, 2), Cells(prow, 2)) Dim 品名KeyWord As Range Dim firstAddress As String Set 品名KeyWord = .Find(what:="フランジ", LookIn:=xlValues) If Not 品名KeyWord Is Nothing Then ' Nrow = Application.WorksheetFunction.Match(品名KeyWord, Worksheets("明細_配管材料").Range(Cells(明細配管のクラスNO行数, 2), Cells(prow, 2)), 0) firstAddress = 品名KeyWord.Address Do Nrow = Application.WorksheetFunction.Match(品名KeyWord, Worksheets("明細_配管材料").Range(Cells(明細配管のクラスNO行数, 2), Cells(prow, 2)), 0) '品名 Cells(prow, 2) = "ボルト・ナット" '材質 For i = 1 To 4 SheetName = "IN-" & i Set 材質KeyWord = Sheets(SheetName).Range("AQ27:AQ46").Find(what:=NOValue, LookIn:=xlValues) If Not 材質KeyWord Is Nothing Then Zrow = Application.WorksheetFunction.Match(材質KeyWord, Sheets(SheetName).Columns("AQ:AQ"), 0) Cells(prow, 3) = Sheets(SheetName).Cells(Zrow, 29) Exit For End If Next '数量&口径の該当行列数 kValue = Cells(Nrow + 明細配管のクラスNO行数 - 1, 5) '口径サイズ If kValue <> "" Then Set 材質KeyWord = Sheets("ボルトナット形状").Columns("A:A").Find(what:=kValue, LookIn:=xlValues, lookat:=xlPart) If Not 材質KeyWord Is Nothing Then Krow = Application.WorksheetFunction.Match(材質KeyWord, Sheets("ボルトナット形状").Columns("A:A"), 0) End If End If RValue = Cells(Nrow + 明細配管のクラスNO行数 - 1, 6) 'レーティング,Sch If RValue <> "" Then Set レーティンクKeyWord = Sheets("ボルトナット形状").Rows("1:1").Find(what:=RValue, LookIn:=xlValues) If Not レーティンクKeyWord Is Nothing Then Rcol = Application.WorksheetFunction.Match(レーティンクKeyWord, Sheets("ボルトナット形状").Rows("1:1"), 0) End If End If '数量 Cells(prow, 9) = Sheets("ボルトナット形状").Cells(Krow, Rcol + 1) '単位 If Cells(prow, 9) <> "" Then Cells(prow, 10) = "本" End If '口径 Cells(prow, 5) = Sheets("ボルトナット形状").Cells(Krow, Rcol) '仕様 If RValue = "JPI#150" Or RValue = "JPI#300" Then Cells(prow, 4) = "ユニファイネジ 六角ボルト" Else Cells(prow, 4) = "メートルネジ 六角ボルト" End If prow = prow + 1 Set 品名KeyWord = Range(Cells(明細配管のクラスNO行数, 2), Cells(prow, 2)).FindNext(品名KeyWord) Loop While Not 品名KeyWord Is Nothing And 品名KeyWord.Address <> firstAddress End If End With
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.