- 帖子
- 14
- 主題
- 2
- 精華
- 0
- 積分
- 50
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- office 2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 宜蘭
- 註冊時間
- 2013-8-26
- 最後登錄
- 2013-12-19
|
3#
發表於 2013-8-30 15:05
| 只看該作者
回復 2# luhpro
十分感謝!已經可以使用,但程式過於冗長,不知是否能夠加以改進,謝謝!
假設 a1至a10儲存格內容分別為100.11.12.1至10,ping完後,將結果寫至B1至B10,程式如下:
Sub iptest()
Columns("B:C").Select
Selection.ClearContents
'建立測試ip批次檔案
路徑 = ThisWorkbook.Path & "\"
For 列 = 1 To 10
檔名 = 路徑 & 列
內容 = "Ping -n 1 " & Cells(列, 1) & " > " & 檔名 & ".txt"
Open 檔名 & ".bat" For Output As #1
Print #1, 內容
Close #1
Next 列
費時 = Timer
'測試ip
For 列 = 1 To 10
批次檔 = 路徑 & 列 & ".BAT"
A = Shell(批次檔, 0)
Next 列
休息 = Timer
Do While Timer - 休息 < 4
Loop
'讀取結果
系統 = Application.OperatingSystem
For 列 = 1 To 10
文字檔 = 路徑 & 列 & ".TXT"
代碼 = FreeFile ' 取得未使用的檔案代碼。
Open 文字檔 For Input As #代碼
If Left(Right(系統, 4), 1) = 5 Then 字 = LOF(代碼) Else 字 = 80
Cells(列, 2) = Input(字, #代碼)
Close #代碼 ' 關閉檔案。
Next 列
[c1] = Timer - 費時
[a1].Select
休息 = Timer
Do While Timer - 休息 < 4
Loop
Kill 路徑 & "*.BAT"
Kill 路徑 & "*.TXT"
End Sub |
|