RSS

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

30 Sep

Smile สำหรับหมายเลข IP ซึ่งต้องมองทีละชุดไปนั้นไม่สามารถใช้การตรวจสอบได้เหมือนเลขธรรมดา ต้องตรวจสอบหมายเลขเป็นชุด ๆ ไป การตรวจสอบด้วยสูตรจึงทำได้ลำบากแต่สามารถใช้ VBA เข้ามาช่วยได้ครับ

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

ภาพประกอบการตรวจสอบ IP

CheckIPInterval

เราสามารถใช้ Code VBA ตามด้านล่างครับ

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

 
Leave a comment

Posted by on 30/09/2012 in Check IP

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: