VB ping 宏 - 需要对象
VB ping macro - object required
我对 VB 一无所知,但我正在尝试在 word 文档中编译一个快速 ping 测试宏来测试一些恶意软件沙箱软件。但是,我不断收到运行时 424 错误。
我做了一些研究,但由于对 VB 的了解为 0,我未能找到解决方案。代码如下
Sub Ping()
' Ping Macro
If My.Computer.Network.Ping("192.168.1.10") Then
MsgBox ("Server pinged successfully.")
Else
MsgBox ("Ping request timed out.")
End If
End Sub
我显然在这里遗漏了一些东西。我假设对象应该是消息框,但我错了。有人知道我在这里缺少什么吗?
编辑:调试显示第一行是问题所在。
If My.Computer.Network.Ping("192.168.1.10") Then
谢谢。
My.Computer.Network.Ping()
是一个 VB.Net 函数,在 VBA 中不可用。
前段时间我有一个获取 ping 时间的函数,这应该可以帮助你。
您可能只需要 StatusCode = 0
检查。
' strAddress = IP or name
Public Function PingTime(strAddress) As Long
Dim objPing As Object, objStatus As Object
' Init: Assume error
PingTime = -1
On Error Resume Next
Set objPing = GetObject("WinMgmts:{impersonationLevel=impersonate}").ExecQuery _
("SELECT * FROM Win32_PingStatus WHERE Address = '" & strAddress & "' ")
If Err.Number <> 0 Then
Exit Function
End If
For Each objStatus In objPing
If objStatus.StatusCode = 0 Then
PingTime = objStatus.Properties_("ResponseTime").Value
Exit For
End If
Next
Set objStatus = Nothing
Set objPing = Nothing
End Function
我对 VB 一无所知,但我正在尝试在 word 文档中编译一个快速 ping 测试宏来测试一些恶意软件沙箱软件。但是,我不断收到运行时 424 错误。
我做了一些研究,但由于对 VB 的了解为 0,我未能找到解决方案。代码如下
Sub Ping()
' Ping Macro
If My.Computer.Network.Ping("192.168.1.10") Then
MsgBox ("Server pinged successfully.")
Else
MsgBox ("Ping request timed out.")
End If
End Sub
我显然在这里遗漏了一些东西。我假设对象应该是消息框,但我错了。有人知道我在这里缺少什么吗?
编辑:调试显示第一行是问题所在。
If My.Computer.Network.Ping("192.168.1.10") Then
谢谢。
My.Computer.Network.Ping()
是一个 VB.Net 函数,在 VBA 中不可用。
前段时间我有一个获取 ping 时间的函数,这应该可以帮助你。
您可能只需要 StatusCode = 0
检查。
' strAddress = IP or name
Public Function PingTime(strAddress) As Long
Dim objPing As Object, objStatus As Object
' Init: Assume error
PingTime = -1
On Error Resume Next
Set objPing = GetObject("WinMgmts:{impersonationLevel=impersonate}").ExecQuery _
("SELECT * FROM Win32_PingStatus WHERE Address = '" & strAddress & "' ")
If Err.Number <> 0 Then
Exit Function
End If
For Each objStatus In objPing
If objStatus.StatusCode = 0 Then
PingTime = objStatus.Properties_("ResponseTime").Value
Exit For
End If
Next
Set objStatus = Nothing
Set objPing = Nothing
End Function