Excel VBA質問箱 IV

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

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


3756 / 76735 ←次へ | 前へ→

【78608】Re:VLOOKUPを使いたい
発言  β  - 16/11/28(月) 12:51 -

引用なし
パスワード
   ▼もよもと さん:

γさんから

>>なお、そのつど全文引用するのはやめてください。
>>無駄に長くなります。 

というアドバイスがあるのに、それでも全文引用 ?

まぁ、それはさておき

>エラー値を表示せずに、メッセージ表示してTargetを消すような動作は
>できないでしょうか。

最初のApplication.VLookUp の結果を セル直接 ではなく Variant型の変数で受けます。

で、

If IsError(その変数) Then
  MsgBox "該当値がありません。" & vblf & "入力を元に戻します"
  Application.Undo
  Application.EnableEvents = True
  Exit Sub
Else
  その変数を目的のセルにセット
 2番目以降のVLookUp 等 現在のコード
End If

といったようにされるといいと思います。
ただ、一括複数入力時、ループ処理をされていますよね。
そうした場合、仮に、マッチする入力があって、そのあとにマッチしないものがあった場合は
UnDo で不具合が発生します。

ですから、ちょっとコード的には悩ましいところがありますね。
(手当て方法はありますが)

>MatchとIndexを組み合わせる方法がいまいちよく分からない

シート関数のMATCHの使い方はおわかりですよね。

Variant型変数 = Application.Match(・・・・)
If IsError(その変数) Then
  MsgBox "該当値がありません。" & vblf & "入力を元に戻します"
  Application.Undo
  Application.EnableEvents = True
  Exit Sub
Else
  3行目から200行目の領域の中の 変数が示す位置(変数+2 行目), の
  C,D,E列の値を目的のセルにセット
End If

こんな感じです。
ただし、一括複数入力時の課題は同じものがありますが。

1 hits

【78592】VLOOKUPを使いたい もよもと 16/11/23(水) 22:00 質問[未読]
【78593】Re:VLOOKUPを使いたい γ 16/11/23(水) 22:06 発言[未読]
【78594】Re:VLOOKUPを使いたい もよもと 16/11/24(木) 5:57 発言[未読]
【78595】Re:VLOOKUPを使いたい γ 16/11/24(木) 7:17 発言[未読]
【78596】Re:VLOOKUPを使いたい もよもと 16/11/24(木) 7:35 お礼[未読]
【78597】Re:VLOOKUPを使いたい β 16/11/24(木) 10:43 発言[未読]
【78598】Re:VLOOKUPを使いたい もよもと 16/11/24(木) 12:33 発言[未読]
【78599】Re:VLOOKUPを使いたい 16/11/24(木) 13:54 発言[未読]
【78600】Re:VLOOKUPを使いたい もよもと 16/11/24(木) 15:05 お礼[未読]
【78604】Re:VLOOKUPを使いたい もよもと 16/11/28(月) 0:57 質問[未読]
【78605】Re:VLOOKUPを使いたい γ 16/11/28(月) 7:35 発言[未読]
【78607】Re:VLOOKUPを使いたい もよもと 16/11/28(月) 10:10 お礼[未読]
【78608】Re:VLOOKUPを使いたい β 16/11/28(月) 12:51 発言[未読]
【78609】Re:VLOOKUPを使いたい もよもと 16/11/28(月) 15:29 お礼[未読]

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