返回列表 上一主題 發帖

求使用vba ping

求使用vba ping

Dears
想請問我一次有多筆資料需要ping格式如下:
台北        10.1.1.1                10.1.1.2                10.1.1.3       
台中        10.2.1.1                10.2.1.2                10.2.1.3
並需要在各個IP隔一欄去回覆ping是否正確,請問該怎麼 去寫?!

感謝大家的回覆與幫忙!!

TOP

回復 13# GBKEE
謝謝您!
  1. .Open ActiveWorkbook.Path & "\機票記錄明細表.mdb"
複製代碼
事實上我並不是要開啟 "機票記錄明細表.mdb",而是要指向已開啟的 Excel 本身,
因為接下來要查詢、刪除、新增、或更新的標的均為  Excel 本身指定的工作表單
資料錄而非 Access 資料庫的資料錄。
謝謝您!

TOP

回復 12# c_c_lai
http://neural.cs.nthu.edu.tw/jan ... asp?SessionCount=11
http://support.microsoft.com/kb/257819/zh-tw#RetrieveMetadata
http://www.blueshop.com.tw/board ... 10110153028R5I.html
  1. Sub Test()
  2.     Dim cnn As Object       '  New ADODB.Connection
  3.     Dim cmd As Object       '  New ADODB.Command
  4.     Dim rs As Object        '  New ADODB.Recordset

  5.     Set cnn = CreateObject("ADODB.Connection")
  6.     Set rs = CreateObject("ADODB.Recordset")
  7.     Set cmd = CreateObject("ADODB.Command")

  8.     With cnn
  9.         If .State = 1 Then .Close    '  adStateOpen
  10.         .Provider = "Microsoft.Jet.OLEDB.4.0"
  11.        ' .ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & _
  12.                             ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name
  13.         .Open ActiveWorkbook.Path & "\機票記錄明細表.mdb"
  14.     End With
  15. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 11# GBKEE
順帶請教您:
以下測試於2003 Excel中, 於 Set cnn 後發現 cnn 值為 "",
所以在 .Open 時便出錯了。在工具->設定引用項目中要注意那些項次?
但是此語法在 2010 環境下執行都 OK,正確應如何處裡?
P.S. 這是我在 Excel工作表單與Access資料庫的VBA互動問題 中的提問,
     此部分是為了要同時以 ADODB 語法來處理工作表單內之資料錄而設定的。
  1. Sub Test()
  2.     Dim cnn As Object       '  New ADODB.Connection
  3.     Dim cmd As Object       '  New ADODB.Command
  4.     Dim rs As Object        '  New ADODB.Recordset

  5.     Set cnn = CreateObject("ADODB.Connection")
  6.     Set rs = CreateObject("ADODB.Recordset")
  7.     Set cmd = CreateObject("ADODB.Command")

  8.     With cnn
  9.         If .State = 1 Then .Close    '  adStateOpen
  10.         
  11.         .ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & _
  12.                             ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name
  13.         .Open     
  14.     End With
  15. End Sub
複製代碼

TOP

回復 10# c_c_lai
9#程式的前提是已執行8#附檔的 ipchange()
如會溢位應資料量大時是  C As Integer
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 9# GBKEE
  1. Set Rng = .Range("C2", .Range("C2").End(xlDown)).Resize(, .Range("C1").End(xlToRight).Column - 2)
複製代碼
需改成:
  1. Set Rng = .Range("C2", .Range("C65535").End(xlUp)).Resize(, .Range("C1").End(xlToRight).Column - 2)
複製代碼
否則會發生溢位。

TOP

回復 8# loveinput
同時跑兩個程式! (程式執行時,移動滑鼠,鍵盤,易出錯)
  1. Option Explicit
  2. Sub Ex_Ping()
  3.     Dim AR(), Rng As Range, R As Integer, C As Integer, termPing As Object, termStatus As Variant
  4.     With Worksheets("Sheet1")
  5.         Set Rng = .Range("C2", .Range("C2").End(xlDown)).Resize(, .Range("C1").End(xlToRight).Column - 2)
  6.         AR = Rng                                '轉入陣列
  7.     End With
  8.     For R = 1 To UBound(AR)                     '陣列:第一維(列)
  9.         For C = 1 To UBound(AR, 2) Step 2       '陣列:第二維(欄)  Step 2 間隔 2欄
  10.             Application.StatusBar = AR(R, C)
  11.             Set termPing = GetObject("winmgmts:").ExecQuery _
  12.                     ("Select * from Win32_PingStatus where Address = '" & AR(R, C) & "'")
  13.             For Each termStatus In termPing
  14.                 With termStatus
  15.                     If IsNull(.StatusCode) Or .StatusCode <> 0 Then ' Terminal失敗
  16.                         AR(R, C + 1) = "Termin 3G不通" '                termresResult = "Time Out"
  17.                     Else ' 成功
  18.                         AR(R, C + 1) = "Termin 3G通" '                termresResult = .ResponseTime & "ms"   '取得ATUR回應時間
  19.                     End If
  20.                 End With
  21.             Next
  22.         Next
  23.     Next
  24.     Rng = AR                        '導出陣列
  25.     Application.StatusBar = "OK"
  26. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

upping.zip (83.88 KB)
果真是奢談阿!!還望指導,更新如附件

TOP

回復 6# loveinput
Sub ipchange() 不能正常執行, 奢談我主要是執行ping1~ping7的動作,希望能同時執行!!
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 站在半路,比走到目標更辛苦。
返回列表 上一主題