Vb.net VB ping宏-需要对象

Vb.net VB ping宏-需要对象,vb.net,vba,ping,Vb.net,Vba,Ping,我对VB一无所知,但我正试图在word文档中编译一个快速ping测试宏来测试一些恶意软件沙盒软件。然而,我不断得到运行时424错误 我做了一些研究,但由于我对VB一无所知,我未能找到解决方案。代码如下 Sub Ping() ' Ping Macro If My.Computer.Network.Ping("192.168.1.10") Then MsgBox ("Server pinged successfully.") Else MsgBox ("Ping request time

我对VB一无所知,但我正试图在word文档中编译一个快速ping测试宏来测试一些恶意软件沙盒软件。然而,我不断得到运行时424错误

我做了一些研究,但由于我对VB一无所知,我未能找到解决方案。代码如下

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
“StradAddress=IP或名称
公共功能ping时间(strAddress)尽可能长
对象为Dim objPing,对象为objStatus
'初始化:假设错误
PingTime=-1
出错时继续下一步
设置objPing=GetObject(“WinMgmts:{impersonationLevel=impersonate}”).ExecQuery_
(“从Win32中选择*地址=”&strAddress&“”)
如果错误号为0,则
退出功能
如果结束
对于objPing中的每个objStatus
如果objStatus.StatusCode=0,则
PingTime=objStatus.Properties_U8;(“ResponseTime”).Value
退出
如果结束
下一个
设置objStatus=Nothing
设置objPing=Nothing
端函数

嘿,看看这篇文章。对于excel电子表格,当然可以。我仍然不知道我在用VBA做什么,如何将其转换为Word宏?我不担心错误处理,我只需要ping并观察我的虚拟机中的流量。