Isso faz o que você quer, se o VBa estiver OK?
Você pode ver os valores inicial e final. Este é o intervalo para cada uma das três classes (daí o A, B e C). Então você pode ver classA, classB e classC - eu mantive estes caso você precisava alterar o valor por qualquer motivo. A última é, em qual coluna o IP está (a columnToLookUp
e por fim qual coluna você quer os resultados. Eu escolhi A e B respectivamente).
Option Explicit
Sub DoThis()
'Edit this top part as you need
Dim startClassA As Integer
startClassA = 1
Dim endClassA As Integer
endClassA = 127
Dim startClassB As Integer
startClassB = 128
Dim endClassB As Integer
endClassB = 191
Dim startClassC As Integer
startClassC = 192
Dim endClassC As Integer
endClassC = 223
Dim classA As String
classA = "Class A"
Dim classB As String
classB = "Class B"
Dim classC As String
classC = "Class C"
Dim columnToLookUp As String
columnToLookUp = "A"
Dim resultColumn As String
resultColumn = "B"
'no need to edit below this (hopefully) ***************
Dim row As Integer
row = 1
Do While (Range(columnToLookUp & row).Value <> "")
Dim ip() As String
ip = Split(Range(columnToLookUp & row).Value, ".")
Dim ipSub As Integer
ipSub = ip(0)
If (ipSub >= startClassA And ipSub <= endClassA) Then
Range(resultColumn & row).Value = classA
End If
If (ipSub >= startClassB And ipSub <= endClassB) Then
Range(resultColumn & row).Value = classB
End If
If (ipSub >= startClassC And ipSub <= endClassC) Then
Range(resultColumn & row).Value = classC
End If
row = row + 1
Loop
End Sub
Além disso, pode ser útil: Como eu adiciono o VBA no MS Escritório?