[[20200721132523]] 『VBA:VLOOKUPにて別ブックを参照し最終行までルー』(ゆっきー) ページの最後に飛ぶ

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

 

『VBA:VLOOKUPにて別ブックを参照し最終行までループ(繰り返し)処理する方法』(ゆっきー)

すいません、、、
教えてください。><

VBAにてVlookupで別ブックにある値を貼り付けし、
それを最終行まで処理を行いたいと思っております。

別ブックから参照するまでは出来たのですが、
繰り返し処理に関してうまく起動せず困っております。

お手数おかけしてますが、
お力をお貸し頂けると幸いです。

宜しくお願い致します。


Option Explicit

Sub オートフィルとVlookUp()

    Dim x As String

    Dim ex As New Excel.Application

    Dim sPath As String

    Dim wb As Workbook

    Dim i As Integer

    ' ループ処理する

    For i = 0 To 10

    '値を取得

    x = Range("Q" & i + 10).Formula

    '開くブックを指定

    sPath = "C:\Users\ファイル名.csv"

    '読み取り専用で開く

    Set wb = ex.Workbooks.Open(Filename:=sPath, UpdateLinks:=0, ReadOnly:=True, IgnoreReadOnlyRecommended:=True)

    With ActiveSheet

        '(1列目)の値を表示

        Range("A" & i + 10).Formula = Application.WorksheetFunction.VLookup(x, wb.Worksheets("シート名").Range("A2:E1000"), 5, False)

    End With

    Next

End Sub


< 使用 Excel:unknown、使用 OS:unknown >


 きちんとインデントをつけると以下のとおり。

 Sub オートフィルとVlookUp()
     Dim x As String
     Dim ex As New Excel.Application
     Dim sPath As String
     Dim wb As Workbook
     Dim i As Integer

     For i = 0 To 10
         x = Range("Q" & i + 10).Formula
         sPath = "C:\Users\ファイル名.csv"
         Set wb = ex.Workbooks.Open(Filename:=sPath, UpdateLinks:=0, ReadOnly:=True, IgnoreReadOnlyRecommended:=True)

         With ActiveSheet
             Range("A" & i + 10).Formula = Application.WorksheetFunction.VLookup(x, wb.Worksheets("シート名").Range("A2:E1000"), 5, False)
         End With
     Next
 End Sub

 突っ込みどころは色々ありますが、大きくは2点です。
 (1)11行の繰り返しの中で、その都度、ブックを開く必要はない。
    最初に一回開くだけでいい。
 (2)別のブックを開くと、それがアクティブシートになる。
    VLOOKUPの結果を書き込むシートは、
    Set ws = ThisWorkbook.Worksheets("Sheet1")   
    などと最初に変数に持ち、これを使えばよいでしょう。

 ご自分で修正してみることをお薦めします。

 (その他。exは不要。Formulaを使う理由が不明、Valueじゃないか。
 VLOOKUPのエラー対応等々。) 
(γ) 2020/07/21(火) 15:15

ご教示ありがとうございます。

こちらで試してみます。
初心者なものですいません。

日々勉強していきます。
(ゆっきー) 2020/07/21(火) 16:19


コメント返信:

[ 一覧(最新更新順) ]


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