Page 1 of 1

Vlookup แบบมีเงื่อนไข

Posted: Mon Mar 05, 2018 3:37 pm
by yangkodza
a01.JPG
Sub Macro1()
Range("B10").Select
ActiveCell.FormulaR1C1 = "ห"
Range("B10").Select
Selection.AutoFill Destination:=Range("B10:AF10"), Type:=xlFillDefault
Range("B10:AF10").Select
Range("B8").Select
End Sub
จากเซลล์ AK14 เป็น เลข 2
เราต้องการให้ ช่องเวลาของเลขที่ 2 ทั้งหมด เป็น ห แนวนอนครับ
คือ Range("B10:AF10") เป็น ห ทั้งหมด
และในกรณีเดียวกัน ถ้าคนลาออกเป็นเลขที่ 8
Range("B16:AF16") ก็จะเป็น ห ทั้งหมด...
ลาออก.xlsm

Re: Vlookup แบบมีเงื่อนไข

Posted: Mon Mar 05, 2018 3:56 pm
by logic
ลองดูโค้ดนี้ครับ

Code: Select all

    Dim MyRange As Range, Rng As Range
    With ActiveSheet
        Set MyRange = .Range("A9:A50")
        For Each Rng In MyRange
            If Application.CountIf(.Range("AK14:AL14"), Rng) > 0 Then
                Rng.Offset(0, 1).Resize(1, 31).Value = "ห"
            End If
        Next Rng
    End With

Re: Vlookup แบบมีเงื่อนไข

Posted: Mon Mar 05, 2018 4:13 pm
by yangkodza
logic wrote: Mon Mar 05, 2018 3:56 pm ลองดูโค้ดนี้ครับ

Code: Select all

    Dim MyRange As Range, Rng As Range
    With ActiveSheet
        Set MyRange = .Range("A9:A50")
        For Each Rng In MyRange
            If Application.CountIf(.Range("AK14:AL14"), Rng) > 0 Then
                Rng.Offset(0, 1).Resize(1, 31).Value = "ห"
            End If
        Next Rng
    End With
ใช้ได้เลยครับ รบกวนอธิบายการทำงานให้ที่ครับ
ทีแรกผมคิดว่าต้องใช้ Vlookup อ้างอิงเลขที่อย่างเดียว

Re: Vlookup แบบมีเงื่อนไข

Posted: Mon Mar 05, 2018 8:18 pm
by snasui
:D เป็นการ Loop เข้าไปในแต่ละเซลล์ในช่วง A9:A50 ว่ามีค่าอยู่ใน AK14:AL14 หรือไม่ ถ้ามีก็ให้ค่าที่ตรงกันในคอลัมน์ B เป็นต้นไปรวม 31 คอลัมน์มีค่าเป็น "ห" ครับ

Re: Vlookup แบบมีเงื่อนไข

Posted: Mon Mar 05, 2018 8:57 pm
by yangkodza
snasui wrote: Mon Mar 05, 2018 8:18 pm :D เป็นการ Loop เข้าไปในแต่ละเซลล์ในช่วง A9:A50 ว่ามีค่าอยู่ใน AK14:AL14 หรือไม่ ถ้ามีก็ให้ค่าที่ตรงกันในคอลัมน์ B เป็นต้นไปรวม 31 คอลัมน์มีค่าเป็น "ห" ครับ
ขอบคุณมากครับ