Bir sütuna giden hücrelere bir vlookup formülü basan bir kod satırı yapmak istiyorum


0

Bu, her hücreye sütundan aşağı doğru yazdırmak istediğim formül

=VLOOKUP(CONCATENATE(E2,C2), WORKABILITY_INDEX!$A$1:$B$82, 2, FALSE)

Aşağıdaki gibi bir ifade kullanıyorum:

Last = Cells(Rows.Count, "A").End(xlUp).Row
    For i = Last To 2 Step -1
        If (Cells(i, "A").Value) <> "" Then
                 Cells(i, "L").Formula = "=VLookup(Concatenate(RC[-8],RC[-10]), ""WORKABILITY_INDEX!$A$1:$B$82"", 2, False)"
        End If
    Next i

1
Ve çalışıyor mu? Olmazsa, nasıl başarısız oluyor? Verileriniz neye benziyor?
terdon

Çalışma zamanı hatası alıyorum, bu yüzden sütun hücrelerinde hiçbir şey yazdırılmıyor.
Dave

Gönderimi düzenlediğiniz için teşekkür ederiz, html'yi kafamın üstünden bilmediğim için üzgünüm.
Dave

"WORKABILITY_INDEX! $ A $ 1: $ B $ 82", aynı çalışma kitabındaki veriler sütun1 ve sütun2 değerlerine sahip olan ayrı bir çalışma sayfasıdır. Birleştirme işleminin nedeni benzersiz bir tanımlayıcı oluşturmaktır, bu yüzden anlamsız görünüyor, ancak her değer benzersiz.
Dave

Tamam, formülün tablo-dizi argümanını çift tırnak ile sınırlandırdım ve artık çalışma zamanı hatası alıyorum. Ancak, # DEĞER! formülü içeren hücrelerde hata. Sayfanın üstündeki resimlemedeki kodu çift tırnak ile güncelleyeceğim.
Dave

Yanıtlar:


0

Kodunuzda yanlış olan birkaç şey vardı - ilk olarak, değeri Lasther zaman 1 idi, son satırın numarası değil.

Bunu dene:

Sub insertFormulas()
Last = ActiveSheet.UsedRange.Rows.Count
    For i = Last To 2 Step -1
        If (Cells(i, "A").Value) <> "" Then
            Cells(i, "L").Formula = "=VLOOKUP(CONCATENATE(E" & i & ",C" & i & "), WORKABILITY_INDEX!$A$1:$B$82, 2, FALSE)"
        End If
    Next i
End Sub

Anahtar değişiklikler:
1. UsedRangeSatır sayısını almak için etkin sayfanın özelliğini kullandım .
2. R1C1 formül stilini hurdaya çıkardım ve bunun yerine istediğiniz formül çıktısını kullandım. Bağıl hücre başvuruları, satır numarasının formül dizesine birleştirilmesiyle oluşturulmuştur.


Vay, bu tamamen işe yaradı. Birleştirme işlevindeki argümanlar için 'i' değişkenini kullanma şeklini seviyorum. Bu yaratıcı çözüm için teşekkür ederiz. Sana borçluyum :)
Dave

Hücredeki değerin tamamını oluşturmak için dizenin parçalarını bir araya getirme gibi. Kesinlikle bu yöntemi gelecekte çok kullanacağım. Yine, çok teşekkürler!
Dave
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.