- 帖子
- 14
- 主題
- 2
- 精華
- 0
- 積分
- 50
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- office 2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 宜蘭
- 註冊時間
- 2013-8-26
- 最後登錄
- 2013-12-19
|
8#
發表於 2013-8-28 16:00
| 只看該作者
回復 6# c_c_lai
假設a1至a10儲存格內容各為100.18.22.1至100.18.22.10,而將ping的結果依序放在B1至B10的儲存格上,程式如下,已經測試在xp及W7,32位元可以執行,但在W7,64位元系統則在 RetVal = Shell("command.com /c Ping -n 1 " & Cells(i, 1) & " > " & ThisWorkbook.Path & "\" & i & ".txt") 這行指令發生錯誤,請問如何修正?謝謝!
另外不知有無方法直接將 ping 的結果直接寫入B1至B10的儲存格,而不必經由寫入txt檔後,再開啟txt檔將其寫入B1至B10儲存格內。十分感激!
Sub Test()
Columns("B:C").Select
Selection.ClearContents
費時 = Timer
For i = 1 To 10
RetVal = Shell("command.com /c Ping -n 1 " & Cells(i, 1) & " > " & ThisWorkbook.Path & "\" & i & ".txt")
Next i
休息 = Timer
Do While Timer - 休息 < 2
DoEvents
Loop
For i = 1 To 10
文字檔 = ThisWorkbook.Path & "\" & i & ".TXT"
代碼 = FreeFile ' 取得未使用的檔案代碼。
Open 文字檔 For Input As #代碼
字長 = LOF(代碼)
Cells(i, 2) = Input(字長, #代碼)
Close #代碼 ' 關閉檔案。
Next i
Cells(1, 3) = Timer - 費時
End Sub |
|