advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 228 for エラー値 #N/A (0.017 sec.)
エラー値 (861), #n/a (1385)
[[20200928135051]]
#score: 10842
@digest: e8a8cb3071717a54f2919f36d662fa58
@id: 85306
@mdate: 2020-10-15T06:09:26Z
@size: 4574
@type: text/plain
#keywords: ビオ (21970), serchkey (15038), 欄検 (13814), outputrange (12450), serchrange (12377), オラ (10141), 用") (7153), 力用 (5775), タ!$ (5110), 囲di (4194), ービ (4091), ジー (3545), マス (3191), 回行 (3083), パン (2859), a1000 (2162), ト: (1983), スタ (1764), る() (1673), ー値 (1657), ラ) (1496), formula (1426), (パ (1375), vlookup (1363), ンジ (1355), 用シ (1203), 終行 (1073), エラ (1012), ラー (944), worksheets (933), 行) (827), 最終 (765)
『VBAでVlookUPをつくりましたがエラー404がでます。』(パンジービオラ)
VBAに挑戦しています。 別のシート(マスタ)に登録してあるコードを入力用シートにてコードを抽出したいと考えています。 マスタシート:A列に名前 B列にコードを入力してあります。 入力用シート:A列にコードを入力したく、B列に名前が入っています。 この場合下記のようなものを作ってみましたが、404のエラーが出てしまいました。 どこが違うか教えていただけるとありがたいです。 よろしくお願いします。 Sub A_コードをつける() Dim SerchKey As Range '検索値 Dim SerchRange As Range '検索範囲 Dim OutputRange As Range '出力範囲 Dim i As Long Set SerchKey = Worksheets("入力用").Range("B2:B1000") Set SerchRange = Worksheets("マスタ").Range("A2:B500") Set OutputRange = Worksheets("入力用").Range("A2:A1000") Application.ScreenUpdating = False For i = 1 To SerchKey.Rows.Count OutputRange(i, 1) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, 2, False) Next Application.ScreenUpdating = True End Sub < 使用 Excel:Excel2016、使用 OS:Windows10 > ---- VLOOKUPをつくったのではなく、使っただけですよね? 日本語は正確に。 デバッグの基本はステップ実行し、変数内容を調べることから。 人にやらせるのではなく、自分でやるものです。 そうしないと、どの行でエラーになったのかも説明できないでしょう? そして、エラーコードは404ですか? 元データがどこまで入力されているかに関係なく、999回ループしているので、空欄検索しようとして、1004のエラーになりそうですが。 また、入力用データが999行あるのに、マスタデータは499行しかないので、見つからない場合も想定すべき。 (???) 2020/09/28(月) 14:21 ---- 失礼しました。 VlookUPを使用して の間違いでした。 また404ではなく、400エラーだったです。 ただ、一行ずつマクロを実行しましたら、確かに「1004」エラーになりました。 空欄検索のためのエラーということなので、改めて調べてみます。 ありがとうございました。 (パンジービオラ) 2020/09/28(月) 14:50 ---- 横からですが、↓のようにすれば、わざわざVBAでループ処理を使ってVLOOKUP関数を実行しなくてもよいかもです。 Sub さんぷる() With Worksheets("入力用").Range("A2:A1000") .Formula = "=VLOOKUP(B2,マスタ!$A$2:$B$500,2,FALSE)" .Value = .Value End With End Sub (もこな2 ) 2020/09/29(火) 08:06 ---- もこな2様 ご連絡遅くなりまして申し訳ございません。 ご回答ありがとうございました。 早速実行してみましたところこの方法でもできるんですね。 シンプルですごいです。 ただ、A列にコードが表示されましたが、B列は毎回行数が変わるので、 B列がない部分はA列が#N/Aになってしまいました。 表示が出ない方法はあるのでしょうか。 (パンジービオラ) 2020/10/09(金) 15:15 ---- >B列は毎回行数が変わるので、B列がない部分はA列が#N/Aになってしまいました。 えっと、そもそもご自身が提示したコードも含めて何がどのような動き(命令)になっているか理解してますか? そこが理解出来れば、いろんなアプローチを思いつきそうな気がしますが・・・・・ Sub B列最終行までにしてみる() Dim 最終行 As Long With Worksheets("入力用") 最終行 = .Cells(.Rows.Count, "B").End(xlUp).Rows If 最終行 < 2 Then Exit Sub With .Range("A2:A" & 最終行) .Formula = "=VLOOKUP(B2,マスタ!$A$2:$B$500,2,FALSE)" .Value = .Value End With End With End Sub '--------------------------------------------------------------- Sub エラー値をクリアしてみる() With Worksheets("入力用").Range("A2:A1000") On Error Resume Next .SpecialCells(xlCellTypeFormulas, 16).ClearContents On Error GoTo 0 .Formula = "=VLOOKUP(B2,マスタ!$A$2:$B$500,2,FALSE)" .Value = .Value End With End Sub '--------------------------------------------------------------- Sub エラー値にならない数式にしてみる() With Worksheets("入力用").Range("A2:A1000") .Formula = "=IFERROR(VLOOKUP(B2,マスタ!$A$2:$B$500,2,FALSE),"""")" .Value = .Value End With End Sub (もこな2) 2020/10/13(火) 14:45 ---- ↑について、ミスがありましたので編集しました。 (もこな2) 2020/10/14(水) 09:02 ---- もこな2様 再度のご回答ありがとうございました。 VBAはきちんと理解できていないので、ネットの力を借りてばかりです。 そのため、応用がきかず。 今回は「 エラー値にならない数式にしてみる」をコピーさせていただき、 他のVLOOKUPを使用している部分に当てはめてみようと思います。 いろいろ式を考えてくださりありがとうございました。 (パンジービオラ) 2020/10/15(木) 15:09 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/202009/20200928135051.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97012 documents and 608132 words.

訪問者:カウンタValid HTML 4.01 Transitional