2016-03-22 12 views
-1

Makroyu aynı hücreye vlookup formülüne yerleştiren bir makro oluşturmaya çalışıyorum ancak yalnızca belirli bir sayfa aralığı için (Temel olarak ilk sayfa dışındaki her sayfa) Makroyu aynı hücreye yerleştirmek için yalnızca seçili sayfa dizisi içinde

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 

aşağıdaki hatayı alıyorum kod çalıştıran: derleme: Değişken tanımlanmamış İşte aşağıda benim kod iki). Bunun hakkında herhangi bir fikir takdir edilecektir.

+0

yardım ederse bilmiyorum aSheet yere tanımlanmış mı? İlk kullanımdan önce 3. satırda bir Dim göremiyorum. Bu problem değil, hata ayıklayıcının hangi satırda durduğunu söyleyebilir misiniz? –

+0

Kodunuzun üst kısmında bulunan 'Option Explicit' satırı ile tüm değişkenleri bir 'Dim' ifadesiyle bildirmeniz gerekir. Örneğin, 'Çalışma Sayfası Olarak Dim A Sayfası'. Ancak size yardımcı olabilmemiz için, koddaki bazı şeyleri açıklığa kavuşturmanız gerekir: VLookup formülünün yer aldığı her sayfadan alınacak arama değeri mi yoksa tek bir sayfadan mı? Dördüncü çizgi nedir? Dahil edilmemesi gereken iki sayfayı adlandırdığınız yer burası mı? Eğer öyleyse, 'aSheet.Name <> "Sheet87" If ile bir sonraki muafiyet nedir? – Ralph

+0

@Ralph Sheet87, aramanın gerçekte gerçekleştiği sayfadır. Mesele, A2'deki arama değerine dayanarak her bir sayfanın formülünü A4'te eklemek istediğim büyük bir çalışma kitabım var. Tüm amaç, tüm sekmelerde adı değiştirmek için dolaylı bir VBA kullanmaktı. – user3666237

cevap

0

bu

On Error Resume Next  
formulavalue = Application.WorksheetFunction.VLookup(" & lookupvalue & ",'Sheet87'!A2:I200;3;FALSE) 
Cells(1, 4).Value = formulavalue 
İlgili konular