Page 1 of 1

จะให้ เลือก หลายๆ คอมลัมตามเงื่อนไข ได้อย่างไรครับ

Posted: Wed May 17, 2023 12:58 pm
by nutpochan

Code: Select all

Sub Macro1()
Dim LR As Long, i As Long, r As Range
LR = Range("a" & Rows.Count).End(xlUp).Row
For i = 1 To LR
    If Range("a" & i).Value = "11" Then
        If r Is Nothing Then
            Set r = Range("b" & i)
        Else
            Set r = Union(r, Range("b" & i))
        End If
    End If
Next i
r.Select
End Sub
ในโค๊ดนี้ เมื่อกด รัน แล้ว จะเลือกเงือนไข ที่ คอลัมb โดย อ้างอิง ว่า คอลัม เท่ากับ a =11

แต่ถ้า ผมอยากจะให้ เลือก คอลัม b และ คอลัม c เลือก หลายๆ คอลัม ในรันครั้งเดียวกัน โดย อ้างอิง เงือนไขดังกล่าว ผมจะสามารถแก้โค๊ดอย่างไรครับ

Re: จะให้ เลือก หลายๆ คอมลัมตามเงื่อนไข ได้อย่างไรครับ

Posted: Wed May 17, 2023 1:36 pm
by snasui
:D ถ้าเลือกเซลล์ที่ติดกันก็ใช้ Resize เข้าไปช่วยได้ครับ เช่น

set r = range("b" & i).resize(1,5) หมายถึง จากคอลัมน์ B ให้ขยายไปทางขวา 5 คอลัมน์ เช่นนี้เป็นต้นครับ

Re: จะให้ เลือก หลายๆ คอมลัมตามเงื่อนไข ได้อย่างไรครับ

Posted: Wed May 17, 2023 5:24 pm
by nutpochan
ถ้าเลือก range เซล ที่ไม่ติดกันเช่น เลือก range a และ range c เราจะเขียนว่าอย่างไรครับ

Re: จะให้ เลือก หลายๆ คอมลัมตามเงื่อนไข ได้อย่างไรครับ

Posted: Wed May 17, 2023 6:52 pm
by nutpochan
ลองใช้ คำสั่ง

Code: Select all

Range("B1:B9,C1:C9,E1:E9,G1:G9").Select
ได้ผลเฉพาะ selection ที่จงเจาะเซล ที่ไม่ติด ตัวแปร r ลองดัดแปลงโค๊ดแล้ว ยังติด debug ครับ

Re: จะให้ เลือก หลายๆ คอมลัมตามเงื่อนไข ได้อย่างไรครับ

Posted: Wed May 17, 2023 7:37 pm
by nutpochan
แก้ไข ปัญหา ได้แล้ว ครับ

Code: Select all

Union(r.Offset(0, 0), r.Offset(0, 2)).Select