:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

การตรวจสอบหมายเลข IP ว่าอยู่ใน Range ใดหรือไม่

ฟอรัมสำหรับแจกจ่ายแบ่งปันไฟล์ รวมทั้งแหล่งความรู้ต่าง ๆ เกี่ยวกับ Excel
User avatar
snasui
Site Admin
Site Admin
Posts: 30760
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

การตรวจสอบหมายเลข IP ว่าอยู่ใน Range ใดหรือไม่

#1

Post by snasui »

:D สำหรับหมายเลข IP ซึ่งต้องมองทีละชุดไปนั้นไม่สามารถใช้การตรวจสอบได้เหมือนเลขธรรมดา Code ตามด้านล่างจะเป็นการนำ I3:I17 ไปตรวจสอบกับ C3:D7 ว่าอยู่ในช่วงใดหรือไม่ หากพบว่าอยู่ในช่วงใดจะเติมค่า Y ในคอลัมน์ J หากไม่พบจะเติมค่า N

Code: Select all

Sub CheckIPInterVal()
    Dim r As Range, rAll As Range
    Dim rt As Range, rtAll As Range
    Dim lng As Long, ts As Variant
    Dim tt As Variant, c As Boolean
    With Sheets("Sheet1")
        Set rAll = .Range("i3", _
            .Range("i" & Rows.Count).End(xlUp))
        Set rtAll = .Range("c3", _
            .Range("c" & Rows.Count).End(xlUp))
    End With
    lng = 2
    For Each r In rAll
        c = False
        For Each rt In rtAll
            ts = Split(r, ".")
            tt = Split(rt, ".")
            If CInt(ts(0)) >= CInt(tt(0)) And _
                CInt(ts(1)) >= CInt(tt(1)) And _
                CInt(ts(2)) >= CInt(tt(2)) And _
                CInt(ts(3)) >= CInt(tt(3)) Then
                    tt = Split(rt.Offset(0, 1), ".")
                    If CInt(ts(0)) <= CInt(tt(0)) And _
                        CInt(ts(1)) <= CInt(tt(1)) And _
                        CInt(ts(2)) <= CInt(tt(2)) And _
                        CInt(ts(3)) <= CInt(tt(3)) Then
                        lng = lng + 1
                        r.Offset(0, 1) = "Y"
                        c = True
                        Exit For
                    End If
            End If
        Next rt
        If c = False Then
            r.Offset(0, 1) = "N"
        End If
    Next r
End Sub
Attachments
CheckIPInterVal.png
CheckIPInterVal.png (30.61 KiB) Viewed 1138 times
tstc79tt
Member
Member
Posts: 83
Joined: Tue Nov 13, 2012 4:39 pm

Re: การตรวจสอบหมายเลข IP ว่าอยู่ใน Range ใดหรือไม่

#2

Post by tstc79tt »

โอ้ววววววววว ขอบคุณมากๆๆๆๆๆๆๆๆๆๆๆ เป็นความรู้นำทางให้ผมจริงๆ ผมจะพยายามศึกษาครับ
tstc79tt
Member
Member
Posts: 83
Joined: Tue Nov 13, 2012 4:39 pm

Re: การตรวจสอบหมายเลข IP ว่าอยู่ใน Range ใดหรือไม่

#3

Post by tstc79tt »

ผมมีคำถามครับ

ว่าหากผมต้องการทำงานข้ามชีตโดยที่ ตารางแรกอยู่ชีตที่ 1 กับ ตาราง2 อยู่ชีตที่ 2 เราสามารถไปแก้โค๊ดตรงไหนได้บ้างครับ ผมลองแก้ๆแล้วมันผิดน่ะครับ :D
User avatar
snasui
Site Admin
Site Admin
Posts: 30760
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การตรวจสอบหมายเลข IP ว่าอยู่ใน Range ใดหรือไม่

#4

Post by snasui »

:D การแก้ Code ต้องทำเองครับ ติดขัดตรงไหน อย่างไร ให้ถามในหมวดถามตอบ หมวดนี้ผมมีไว้สำหรับแจกไฟล์หรือ Code ครับ
tstc79tt
Member
Member
Posts: 83
Joined: Tue Nov 13, 2012 4:39 pm

Re: การตรวจสอบหมายเลข IP ว่าอยู่ใน Range ใดหรือไม่

#5

Post by tstc79tt »

snasui wrote::D การแก้ Code ต้องทำเองครับ ติดขัดตรงไหน อย่างไร ให้ถามในหมวดถามตอบ หมวดนี้ผมมีไว้สำหรับแจกไฟล์หรือ Code ครับ
ครับขอบคุณครับ
Post Reply