Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8373 / 13646 ツリー ←次へ | 前へ→

【33707】VLOOKUP関数の範囲を複数のシートにできないか? k 06/1/18(水) 17:13 質問[未読]
【33708】Re:VLOOKUP関数の範囲を複数のシートにでき... Jaka 06/1/18(水) 17:33 回答[未読]
【33717】Re:VLOOKUP関数の範囲を複数のシートにでき... k 06/1/18(水) 20:19 質問[未読]

【33707】VLOOKUP関数の範囲を複数のシートにでき...
質問  k E-MAIL  - 06/1/18(水) 17:13 -

引用なし
パスワード
   【33698】に関連して、新たな疑問が生まれました。
今書きかけのコードは

Dim j As Integer
For j = 7 To 3000
 Range("Q" & j).FormulaR1C1 = "=VLOOKUP(RC1,〜以下略
 Range("R" & j).FormulaR1C1 = "=VLOOKUP(RC3,〜以下略
 Select Case Cells(j, "Q")
  Case Cells(j, "R").Value
   ○○

としているのですが、
VLOOKUP関数で範囲として使いたい部分が、実は1枚のシートではありません
手作業でやっていたころは、

・Q列に#N/Aと表示されたら、他のシートを範囲に指定。
・どのシートにも証券名がなかったら、△△

という手順でやっていたのですが、
VBAで複数のシートから一気に検索する方法はないでしょうか?
VLOOKUP関数で範囲として使いたいシートのフォーマットはすべて、「A列に証券名、C列に証券コード」で統一されています。

【33708】Re:VLOOKUP関数の範囲を複数のシートにで...
回答  Jaka  - 06/1/18(水) 17:33 -

引用なし
パスワード
   過去ログを探しきれなかったので...。

ana = Application.VLookup(Range("A1").Value, Sheets("Sheet2").Range("B1:D20"), 2, 0)
If IsError(ana) Then
  MsgBox "NG"
Else
  MsgBox "OK"
End If

【33717】Re:VLOOKUP関数の範囲を複数のシートにで...
質問  k E-MAIL  - 06/1/18(水) 20:19 -

引用なし
パスワード
   Jakaさんレスありがとうございました。
ただJakaさんのレスをどうやって解決に結びつけてよいか分からないのですが。

【33707】で省略して書きましたが、今書きかけのコードは

Range("Q" & j).FormulaR1C1 = "=VLOOKUP(RC1,'\\Sv01\share_jp\Jul 2005\[Jul 2005.xls]EQ'!$A$3:$C$3000,3,FALSE)"
Range("R" & j).FormulaR1C1 = "=VLOOKUP(RC3,'\\Sv01\share_jp\Aug 2005\[Aug 2005.xls]EQ'!$A$3:$C$3000,3,FALSE)"

となっています。
* 2005.xlsには、EQシート以外のシートもあり、フォーマットはすべて、「A列に証券名、C列に証券コード」で統一されています。
そして、A列(B列)の証券名がEQシートになくても、他のシートには存在した場合、そのシートから対応する証券コードを探してきて、Q列(R列)に表示したいのです(VLOOKUP関数の範囲を複数のシートに指定するようなイメージで)。

すべてのシートのすべてのセルに対してFind メソッドを使えばよいのかと思い
Range("Q" & j).Value = Workbooks("Jul 2005.xls").Worksheets.Cells.Find(Range("A" & j).Value, LookIn:=xlValues).Offset(, 2).Value
としましたが
「メソッドまたはデータメンバが見つかりません。」のエラーが表示されました。

8373 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free