[[20200520122112]] 『セルが空欄の場合だけvlookupで数字を反映させたax(テレワーク疲労) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルが空欄の場合だけvlookupで数字を反映させたい』(テレワーク疲労)

教えてください。
サイトなどを見ながら、VLOOKUPを実行したく下記のようにしました。

Sub Macro1()

    Dim SerchKey As Range 
    Dim SerchRange As Range 
    Dim OutputRange As Range
    Dim i As Long
    On Error Resume Next

    Set SerchKey = ThisWorkbook.Worksheets(1).Range("P9:P2000")
    Set SerchRange = ActiveWorkbook.Worksheets(1).Range("A2:AI2000")
    Set OutputRange = ThisWorkbook.Worksheets(1).Range("H9:H2000")

    For i = 1 To SerchKey.Rows.Count
        OutputRange(i, 1) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, 9, False)
    Next
End Sub

ThisWorkbook.Worksheets(1)のP9〜P2000を検索キーに、
ActivWorkbook.Worksheets(1)のA2〜AI2000の中の9列目(この場合は、I列)を検索して、
ThisWorkbook.Worksheets(1)のH列に反映させようと思っています。

このコードで問題なく稼働できたのですが、
ThisWorkbook.Worksheets(1)のI列にそもそも数値が入っている場合には、
置き換えをせずにそのままの数値を入力しておきたい場合は、どのようにしたらよいでしょうか?

IFを使うかたちでしょうか?

< 使用 Excel:Excel2010、使用 OS:Windows10 >


 質問の意味を理解していないかもしれませんが、

 If ThisWorkbook.Worksheets(1).Cells(i, "I").Value = "" Then
       OutputRange(i, 1) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, 9, False)
 End IF

 そもそも、ThisWorkbook が ActivWorkbook ではない状況がピンときません。
 ActivWorkbook が特定のBookであるなら、その名前を書いた方がはっきりしていいような気がしますが。

(自信なし) 2020/05/20(水) 19:02


回答ありがとうございます。

ActiveWorkbookは、週ごとのデータになるので特定の名前のデータではなく、
毎回名前が変わってしまうのです。

※こんな感じです
0519データ
0526データ
(テレワーク疲労) 2020/05/21(木) 10:48


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.