如何从Excel中获取范围内的下一个IP
我知道必须有一个办法:
我需要帮助获得任何热门的Excel模块/技巧/脚本/macros,将查看一系列的IP,并给我下一个地址了吗? 例如(192.168.1.128) – >(192.168.1.129)
不知道我需要子网,但也会把它扔出去。 (192.168.1.255) – >(192.168.2.1)
我敢打赌,必须用vbscript完成,快速和肮脏的教程如何实现这将是恒星
在此先感谢〜
编辑:
excel列D有192.168.1.1这是手动input
excel列E应该有192.168.1.2
我想避免有人手动input
什么是完成这个最好的方法?
你需要分块分割你的IP地址
Dim ip As String Dim ip_addr() As String Dim ip_next As String ip = "192.168.1.1" ip_addr = Split(ip, ".") ip_next = ip_addr(0) & "." & ip_addr(1) & "." & ip_addr(2) & "." & Trim(Str(Val(ip_addr(3) + 1)))
然而,这并没有考虑到子网,因为你需要位掩码,所以实现起来要复杂得多。 如果你坚持8位掩码的倍数,这不应该太复杂,无法处理。
8位掩码范围从1-255到每个块。
只是检查是否
Val(ip_addr(3) + 1))) > 255
然后妥善处理
编辑
在Excel中读取单元格中的数据只需更改
ip = "192.168.1.1"
至
ip = Range("B1")
我不知道你想用这样一个列表做什么,但不要忘记,一些价值是特定的。
你最好看看http://en.wikipedia.org/wiki/IP_address来获得更多的信息。
基于埃里克的帮助:我在这里find的文章是答案:
Function GetNextIP(text As Variant) Dim ip As String Dim ip_addr() As String Dim ip_next As String ip = text ip_addr = Split(ip, ".") ip_next = Trim(Str(Val(ip_addr(3) + 1))) If ip_next = 256 Then ip_next = 0 End If GetNextIP = ip_addr(0) & "." & ip_addr(1) & "." & ip_addr(2) & "." & ip_next End Function