2016-03-22 12 views
-1

同じセルにvlookup式を配置するマクロを作成しようとしていますが、選択シート範囲のみです(基本的に、ここでは、2つ)は、以下の私のコードです:マクロは、選択セル配列内の同じセルにvlookup数式を配置する

Option Explicit 
Sub RenameTest() 
For Each aSheet.Array In ActiveWorkbook.Worksheets 
aSheet.Array = Sheets(Array("Facility Varian-HM_OH_477417 -", "LTM Income Stat-HM_LA_217368 -") _ 
    ).Select 
aSheet.Activate 
If aSheet.Name <> "Sheet87" Then 
    Dim lookupvalue As String 
    Dim formulavalue As String 
    lookupvalue = Cells(1, 2).Value 
    formulavalue = "=VLOOKUP(" & lookupvalue & ",'Sheet87'!A2:I200;3;FALSE)" 
    Cells(1, 4).FormulaLocal = formulavalue 
End If 

Next aSheet 

End Sub 

コードを実行しているとき、私は次のエラーを取得する:変数定義されていません。コンパイルエラーが発生しました。これについての洞察は高く評価されます。

+0

を助けている場合、私は知らないaSheetはどこかに定義されていますか? 3行目で最初に使用する前にDimが表示されません。問題ではないと仮定して、デバッガが停止している行を教えてください。 –

+0

コードの先頭に 'Option Explicit'という行を付けて、すべての変数を' Dim'文で宣言する必要があります。たとえば、「Dim aSheet As Worksheet」のようにします。しかし、さらに助けになる前に、コード内のいくつかのことを明確にする必要があります:VLookup式が配置されている各シートまたは1枚の中央シートから取得する参照値ですか? 4行目は何ですか?これは含まれてはならない2枚のシートの名前です。もしそうなら、 'If aSheet.Name <> 'の次の除外は何ですか? – Ralph

+0

@Ralph Sheet87は、実際にルックアップが行われるシートです。問題は、A2のルックアップ値に基づいてA4の各シートに数式を挿入したいという大規模なワークブックがあることです。全体の目標は、間接VBAを使用してすべてのタブの名前を変更するよりも、ワークシートのタブ名が来る方法は暗号化が難しいためです – user3666237

答えて

0

これは

On Error Resume Next  
formulavalue = Application.WorksheetFunction.VLookup(" & lookupvalue & ",'Sheet87'!A2:I200;3;FALSE) 
Cells(1, 4).Value = formulavalue 
関連する問題