Board logo

標題: [發問] 儲存格的內容,如何存成批次檔? [打印本頁]

作者: linderlong    時間: 2013-8-29 19:28     標題: 儲存格的內容,如何存成批次檔?

B1及B2內容分別為100.12.22.1及100.12.22.3,
若要將B1及B2的內容,分別存為1.BAT及2.BAT,請教VBA程式該如何撰寫?謝謝!
作者: luhpro    時間: 2013-8-30 00:21

B1及B2內容分別為100.12.22.1及100.12.22.3,
若要將B1及B2的內容,分別存為1.BAT及2.BAT,請教VBA程式該如 ...
linderlong 發表於 2013-8-29 19:28
  1.   Open ThisWorkbook.Path & "\1.bat" For Output As #1
  2.     Print #1, "ping " & [B1]
  3.   Close #1
  4.   
  5.   Open ThisWorkbook.Path & "\2.bat" For Output As #1
  6.     Print #1, "ping " & [B2]
  7.   Close #1
複製代碼

作者: linderlong    時間: 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




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)