通过 Excel ping 多台计算机并在单独的列中具有 IP 地址
Ping multiple computers through Excel and have IP addresses in a separate column
我需要一个自动 ping 工具,因为我的网络中有 70 台计算机,我厌倦了每次都通过 cmd
ping 它们。所以我有这个 excel sheet 我已经完成了(大部分)。
A列:包含我手写的计算机名
B 列: 它应该(但没有)在 A 列中写出计算机的 IP 地址
C 列: 根据 ping 显示计算机是在线还是离线。
D 列: 我手动输入的东西,知道谁坐在哪台电脑后面,只是用户名。
我有两个按钮,ping
和 stop ping
。他们工作正常。我怎样才能通过按下 ping
按钮,使其遍历 column A
中的所有计算机并同时显示它们的 IP 以及它们是否在线?
当然,这不一定要通过 excel 来完成,如果您有更好的解决方案,并且可以很好地了解我需要清楚地看到的所有 3 件事(comp name
,comp ip
, online/offline
) 和第四个带用户名的东西会很好。
请帮帮我,我很绝望:
Dim objshell, boolcode
Set objshell = CreateObject("Wscript.Shell")
boolcode = objshell.Run("ping -n 1 -w 1000 " & strip, 0, True)
If boolcode = 0 Then
Ping = True
Else
Ping = False
End If
End Function
'_________________________
Sub PingSystem()
Dim strip As String
Do Until Sheet1.Range("G9").Value = "STOP"
Sheet1.Range("G9").Value = "Ping"
For introw = 1 To ActiveSheet.Cells(65536, 2).End(xlUp).Row
strip = ActiveSheet.Cells(introw, 2).Value
If Ping(strip) = True Then
ActiveSheet.Cells(introw, 3).Interior.ColorIndex = 0
ActiveSheet.Cells(introw, 3).Font.Color = RGB(0, 0, 0)
ActiveSheet.Cells(introw, 3).Value = "Online"
ActiveSheet.Cells(introw, 3).Font.Color = RGB(0, 200, 0)
Else
ActiveSheet.Cells(introw, 3).Interior.ColorIndex = 0
ActiveSheet.Cells(introw, 3).Font.Color = RGB(200, 0, 0)
ActiveSheet.Cells(introw, 3).Value = "Offline"
ActiveSheet.Cells(introw, 3).Interior.ColorIndex = 6
End If
If Sheet1.Range("G9").Value = "STOP" Then
Exit For
End If
Next
Loop
Sheet1.Range("G9").Value = "Stop ping"
End Sub
Sub stop_ping()
Sheet1.Range("G9").Value = "STOP"
End Sub
这对我有用
Sub temp()
Set WshShell = CreateObject("WScript.Shell")
RowCount = Worksheets("Sheet1").UsedRange.Rows.Count
For i = 1 To RowCount
Url = Worksheets("Sheet1").Cells(i, 1).Value
cmd = "ping " + Url
Set WshShellExec = WshShell.Exec(cmd)
result = WshShellExec.StdOut.ReadAll
Worksheets("Sheet1").Cells(i, 2).Value = getIP(result)
If (InStr(result, "Received = 4")) Then
Worksheets("Sheet1").Cells(i, 3).Value = "Online"
End If
Next
End Sub
Function getIP(result)
ip = Split(result, vbNewLine)(1)
startIndex = InStr(ip, "[") + 1
endIndex = InStr(ip, "]")
getIP = Mid(ip, startIndex, endIndex - startIndex)
End Function
查看 Excel 的网络工具,使用 Excel 加载项,您可以从 Excel.
ping 多个 IP 地址
我需要一个自动 ping 工具,因为我的网络中有 70 台计算机,我厌倦了每次都通过 cmd
ping 它们。所以我有这个 excel sheet 我已经完成了(大部分)。
A列:包含我手写的计算机名
B 列: 它应该(但没有)在 A 列中写出计算机的 IP 地址
C 列: 根据 ping 显示计算机是在线还是离线。
D 列: 我手动输入的东西,知道谁坐在哪台电脑后面,只是用户名。
我有两个按钮,ping
和 stop ping
。他们工作正常。我怎样才能通过按下 ping
按钮,使其遍历 column A
中的所有计算机并同时显示它们的 IP 以及它们是否在线?
当然,这不一定要通过 excel 来完成,如果您有更好的解决方案,并且可以很好地了解我需要清楚地看到的所有 3 件事(comp name
,comp ip
, online/offline
) 和第四个带用户名的东西会很好。
请帮帮我,我很绝望:
Dim objshell, boolcode
Set objshell = CreateObject("Wscript.Shell")
boolcode = objshell.Run("ping -n 1 -w 1000 " & strip, 0, True)
If boolcode = 0 Then
Ping = True
Else
Ping = False
End If
End Function
'_________________________
Sub PingSystem()
Dim strip As String
Do Until Sheet1.Range("G9").Value = "STOP"
Sheet1.Range("G9").Value = "Ping"
For introw = 1 To ActiveSheet.Cells(65536, 2).End(xlUp).Row
strip = ActiveSheet.Cells(introw, 2).Value
If Ping(strip) = True Then
ActiveSheet.Cells(introw, 3).Interior.ColorIndex = 0
ActiveSheet.Cells(introw, 3).Font.Color = RGB(0, 0, 0)
ActiveSheet.Cells(introw, 3).Value = "Online"
ActiveSheet.Cells(introw, 3).Font.Color = RGB(0, 200, 0)
Else
ActiveSheet.Cells(introw, 3).Interior.ColorIndex = 0
ActiveSheet.Cells(introw, 3).Font.Color = RGB(200, 0, 0)
ActiveSheet.Cells(introw, 3).Value = "Offline"
ActiveSheet.Cells(introw, 3).Interior.ColorIndex = 6
End If
If Sheet1.Range("G9").Value = "STOP" Then
Exit For
End If
Next
Loop
Sheet1.Range("G9").Value = "Stop ping"
End Sub
Sub stop_ping()
Sheet1.Range("G9").Value = "STOP"
End Sub
这对我有用
Sub temp()
Set WshShell = CreateObject("WScript.Shell")
RowCount = Worksheets("Sheet1").UsedRange.Rows.Count
For i = 1 To RowCount
Url = Worksheets("Sheet1").Cells(i, 1).Value
cmd = "ping " + Url
Set WshShellExec = WshShell.Exec(cmd)
result = WshShellExec.StdOut.ReadAll
Worksheets("Sheet1").Cells(i, 2).Value = getIP(result)
If (InStr(result, "Received = 4")) Then
Worksheets("Sheet1").Cells(i, 3).Value = "Online"
End If
Next
End Sub
Function getIP(result)
ip = Split(result, vbNewLine)(1)
startIndex = InStr(ip, "[") + 1
endIndex = InStr(ip, "]")
getIP = Mid(ip, startIndex, endIndex - startIndex)
End Function
查看 Excel 的网络工具,使用 Excel 加载项,您可以从 Excel.
ping 多个 IP 地址