Setステートメントでブック名付きセル範囲を代入しようとするとエラーが出るが?
Question 67.3 拙著「組み方講座」 Previous Next
下のようなVlookupで記述したのですが、エクセル2000では、動くのにエクセル2002ではエラーがでて検索できないのですが、どうしてなのでしょうか。
よろしくご指導ください。お願いします。 エラーがでるのは set 範囲= の行です。
    Do Until Cells(gyo, 1).Value = ""
        Set 範囲 = Workbooks("製番表").Worksheets("製番表").Range("a1:d5000")
        列番号 = 2
        列番号3 = 3
        With ActiveCell
            検索値 = Sheets(1).Cells(gyo, 2) & "," & Sheets(1).Cells(gyo, 3)
            If Cells(gyo, 2).Value <> Empty Or Cells(gyo, 2).Value <> Empty _
                Then
                If Left(.Cells(gyo, 2), 2) <> "19" Then
                    .Cells(gyo, 4) = Application.VLookup(検索値, 範囲, 列番号, _
                        False)
                    .Cells(gyo, 5) = Application.VLookup(検索値, 範囲, 列番号3, _
                        False)
                End If
            End If
        End With
        gyo = gyo + 1
    Loop

Answer   Copyright (C) 2004.5.7 永井善王
エラーメッセージは何と表示されたのでしょうか?
そこに貴重な情報(エラー原因)が表示されているのですから、お知らせいただきたかったです。「Excel2000では動くのに2002で動かない」という奇妙な現象のようですから尚更です。

回答に入りますが、お送りいただいたコードはマクロの一部のようで、何をしているのか詳しくは分かりかねます。そのため、的外れになってしまうかもしれませんが、お許しください。

エラーが発生する 2行目のコードには、不自然なところが見受けられます。
それは、
Workbooks("製番表") となっているところですが、一般的に "" の中には "製番表.xls" というように拡張子付きのブック名を記述します。
よって、そのように修正してからお試しいただけませんか。結果をお知らせいただければ幸いです。
ありがとうございました
上記の質問をさせて頂いたものです。大変有り難うございました。
確かに workbooks("製番表.xls") と、拡張子.XLSをつけることによってエクセル2002で動きました。

 

Excel VBA Macro