如何从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