• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Worksheet Function.VLookup hatası

Katılım
12 Ekim 2020
Mesajlar
7
Excel Vers. ve Dili
Professional Plus 2019
Merhaba

Yazdığım kodların bir yerinde WorksheetFunction sınıfının VLookup özelliği alınamıyor hatası alıyorum. Dosya çok uzun olduğu için ilgili prosedürü kopyalıyorum. Yardımcı olursanız sevinirim.

Private Sub closepositionviop_Click()

Dim lastRow As Long
Dim Silsatir As Long

If sellpriceviop.Value = "" Then
mesaj = "You should enter a Sell Price!"
cevap = MsgBox(mesaj, vbOK, "Stock Sell")
If cevap = vbOK Then
sellpriceviop.SetFocus
Exit Sub
End If
End If

If typeviopsell.Value <> "Stock" Then

lastRow = Worksheets("VIOP").Range("B1").End(xlDown).Row + 1

Worksheets("VIOP").Range("B" & lastRow).NumberFormat = "dd.mm.yyyy"
Worksheets("VIOP").Range("B" & lastRow).Value = WorksheetFunction.VLookup(typeviopsell.Text, Range("B19:Q25"), 1, False)
Worksheets("VIOP").Range("D" & lastRow).Value = shortviopsell.Text
Worksheets("VIOP").Range("C" & lastRow).Value = typeviopsell.Text
Worksheets("VIOP").Range("E" & lastRow).Value = quantityviopsell.Text
'Worksheets("VIOP").Range("F" & lastRow).Value = Format(xxxx, "0.00")
Worksheets("VIOP").Range("F" & lastRow).Value = avgviopsell.Text
Worksheets("VIOP").Range("H" & lastRow).Value = sellpriceviop.Text
Worksheets("VIOP").Range("O" & lastRow).Value = Application.VLookup(typeviopsell.Text, Range("B19:Q25"), 14, False)
Worksheets("VIOP").Range("M" & lastRow).Value = Application.VLookup(typeviopsell.Text, Range("B19:Q25"), 12, False)


Yazılan kelimeyi B19:B25 arasında arayarak ilk satırdaki tarihi başka sayfaya yazdırmak istiyorum.
 
Merhaba,
İlgili değer B sütununda olmadığı için bu hatayı alıyorsunuz. Kodun öncesine bir kontrol ekleyip veriyi bulduğunda işlem yapmasını sağlayabilirsiniz.
Örnek olarak if sorgusunu aşağıdaki şekilde değiştirebilirsiniz.
Rich (BB code):
If typeviopsell.Value <> "Stock" And WorksheetFunction.CountIf(Range("B19:B25"), typeviopsell.Text) > 0 Then
İlave olarak WorksheetFunction.VLookup(typeviopsell.Text, Range("B19:Q25"), 1, False) kodu için 1. sütundaki veri zaten aradığınız veri olmuyor mu? Bunun yerine doğrudan typeviopsell.Text yazsanız daha kolay olmaz mı?
 
Merhaba,
İlgili değer B sütununda olmadığı için bu hatayı alıyorsunuz. Kodun öncesine bir kontrol ekleyip veriyi bulduğunda işlem yapmasını sağlayabilirsiniz.
Örnek olarak if sorgusunu aşağıdaki şekilde değiştirebilirsiniz.
Rich (BB code):
If typeviopsell.Value <> "Stock" And WorksheetFunction.CountIf(Range("B19:B25"), typeviopsell.Text) > 0 Then
İlave olarak WorksheetFunction.VLookup(typeviopsell.Text, Range("B19:Q25"), 1, False) kodu için 1. sütundaki veri zaten aradığınız veri olmuyor mu? Bunun yerine doğrudan typeviopsell.Text yazsanız daha kolay olmaz mı?
Aslında benim aradığım veri 2. satırda ama Match ile sorunumu çözdüm. İlginize çok teşekkür ederim.
 
Merhaba,

Doğrudan FIND komutunu da kullanabilirsiniz.
 
Geri
Üst