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.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,405
Excel Vers. ve Dili
2007 Türkçe
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ı?
 
Katılım
12 Ekim 2020
Mesajlar
7
Excel Vers. ve Dili
Professional Plus 2019
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.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,490
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Doğrudan FIND komutunu da kullanabilirsiniz.
 
Üst