Page 1 of 1
วันที่และเดือนเมื่อดึง Vlookupจาก Database จะสลับกัน
Posted: Tue Oct 06, 2015 3:59 pm
by kitnad
เรียนท่านอาจารย์
ผมมี Database อยู่ก้อนหนึ่ง
ซึ่งวันที่ได้ถูกบันทึกเป็น "1/2/2015"
แต่หลังจากที่ใช้คำสั่ง Vlookup ขึ้นมา เดือนและวันจะสลับกัน
จะเป็น "2/1/2015"
คำสั่งที่ใช้คือ
sheet.Range("L3") = Application.WorksheetFunction.VLookup(sheet.Range("B2"), FileDatabase.Range("$A:$G"), 5, False)
sheet.Range("F3") = Day(Range("L3"))
sheet.Range("G3") = Month(Range("L3"))
sheet.Range("H3") = Year(Range("L3"))
sheet.Range("L4") = Application.WorksheetFunction.VLookup(sheet.Range("B2"), FileDatabase.Range("$A:$G"), 6, False)
sheet.Range("F4") = Day(Range("L4"))
sheet.Range("G4") = Month(Range("L4"))
sheet.Range("H4") = Year(Range("L4"))
'****
ต้องเขียนสูตรแบบไหนครับ ถึงจะได้วันที่เป็น "1/2/2015" เหมือนใน Database เลย
ขอบคุณครับ
Re: วันที่และเดือนเมื่อดึง Vlookupจาก Database จะสลับกัน
Posted: Tue Oct 06, 2015 5:50 pm
by snasui
แนบไฟล์ตัวอย่างมาด้วยจะได้ช่วยดูได้ครับ
สำหรับการ Post Code ให้โพสต์เป็น Code เสมอ จะได้สะดวกต่อการอ่านและ Copy ไปทดสอบ ดูตัวอย่างที่นี่
viewtopic.php?f=6&t=1187 ครับ
Re: วันที่และเดือนเมื่อดึง Vlookupจาก Database จะสลับกัน
Posted: Wed Oct 07, 2015 1:58 pm
by kitnad
Code: Select all
Private Sub CmdSearch_Click()
Dim sheet, FileDatabase As Worksheet
Set sheet = ActiveWorkbook.Sheets("Search1")
Set FileDatabase = ActiveWorkbook.Sheets("Data")
sheet.Range("B3") = Application.WorksheetFunction.VLookup(sheet.Range("B2"), FileDatabase.Range("$A:$G"), 2, False)
sheet.Range("B4") = Application.WorksheetFunction.VLookup(sheet.Range("B2"), FileDatabase.Range("$A:$G"), 3, False)
sheet.Range("B5") = Application.WorksheetFunction.VLookup(sheet.Range("B2"), FileDatabase.Range("$A:$G"), 4, False)
sheet.Range("B6") = Application.WorksheetFunction.VLookup(sheet.Range("B2"), FileDatabase.Range("$A:$G"), 7, False)
sheet.Range("L3") = Application.WorksheetFunction.VLookup(sheet.Range("B2"), FileDatabase.Range("$A:$G"), 5, False)
sheet.Range("F3") = Day(Range("L3"))
sheet.Range("G3") = Month(Range("L3"))
sheet.Range("H3") = Year(Range("L3"))
sheet.Range("L4") = Application.WorksheetFunction.VLookup(sheet.Range("B2"), FileDatabase.Range("$A:$G"), 6, False)
sheet.Range("F4") = Day(Range("L4"))
sheet.Range("G4") = Month(Range("L4"))
sheet.Range("H4") = Year(Range("L4"))
End Sub
Re: วันที่และเดือนเมื่อดึง Vlookupจาก Database จะสลับกัน
Posted: Wed Oct 07, 2015 2:26 pm
by DhitiBank
ลองปรับโค้ดเป็นแบบนี้ดูครับ
Code: Select all
Private Sub CmdSearch_Click()
Dim sheet, FileDatabase As Worksheet
Dim rSource As Range, r As Range
Dim sDoc As String
Set sheet = ActiveWorkbook.Sheets("Search1")
Set FileDatabase = ActiveWorkbook.Sheets("Data")
With FileDatabase
Set rSource = .Range("a1", .Range("a" & .Rows.Count).End(xlUp))
End With
With sheet
sDoc = .Range("b2")
For Each r In rSource
If r = sDoc Then
.Range("b3") = r.Offset(0, 1)
.Range("b4") = r.Offset(0, 3)
.Range("b5") = r.Offset(0, 2)
.Range("b6") = r.Offset(0, 6)
.Range("l3") = r.Offset(0, 4)
.Range("l4") = r.Offset(0, 5)
Exit For
End If
Next r
.Range("F3") = Day(Range("L3"))
.Range("G3") = Month(Range("L3"))
.Range("H3") = Year(Range("L3"))
.Range("F4") = Day(Range("L4"))
.Range("G4") = Month(Range("L4"))
.Range("H4") = Year(Range("L4"))
End With
End Sub