2016-10-12 19 views
0

VLOOKUPコマンドを使用して、シートBにある範囲を使用します(アクティブ化されたものではありません)。新しいワークシートを呼び出すと、私の誤差与えます「『ランタイムエラー1004』をワークシートのクラスのメソッドをアクティブに失敗しました」ワークシート・クラスのactivateメソッドが失敗しました - vlookup - vba

Public Sub Creation() 

    Worksheets("A").Activate 

    Randomize 
    Dim code As String 
    Dim hamid As Variant 
    Dim Lookup_Range As Range 
    Code = 100032 
    Set Lookup_Range = Worksheets("B").Range("O1:P8") 
    On Error Resume Next 
    hamid = Application.WorksheetFunction.VLookup(code, Lookup_Range, 2, False) 
    On Error GoTo 0 

End sub 

を私は新しいワークシートを呼び出すためにコマンドで使用して試してみましたが、私は成功しませんでした。私はVBAの初心者ですので、私にご負担ください。

+0

どのラインがエラーを発生させていますか? –

+0

この行 ワークシート( "A")。有効 –

+0

存在します。ルックアップを追加すると、このエラーがポップアップします。さもなければ、ルックアップのないコードの残りは完全に機能します。 –

答えて

0

ルックアップ範囲はワークシートBにあるようです。ルックアップ機能を使用する前にワークシートBをアクティブにしてみてください。 1つのワークシート上で範囲を定義しようとしたときに問題が発生しました。

Public Sub Creation() 

Worksheets("A").Activate 

Randomize 
Dim code As String 
Dim hamid As Variant 
Dim Lookup_Range As Range 
code = 100032 
'Try here: 
Worksheets("B").Activate 
Set Lookup_Range = Worksheets("B").Range("O1:P8") 
On Error Resume Next 
'or here: 
Worksheets("B").Activate 
hamid = Application.WorksheetFunction.VLookup(code, Lookup_Range, 2, False) 
On Error GoTo 0 
'also made 'Code' in lookup function 'code'. 
End Sub 
+0

kpgあなたは正しいです。また、コードを実行した後、コードを残りのコードを実行させるためにワークシート "A"を再度アクティブにする必要があります。 –

+0

うまくいけばうれしい! – kpg987

関連する問題