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
:D แนบไฟล์ตัวอย่างมาด้วยจะได้ช่วยดูได้ครับ

สำหรับการ 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