Board logo

標題: Excel VBA 建立 文字檔 [打印本頁]

作者: hochoc    時間: 2010-9-7 09:20     標題: Excel VBA 建立 文字檔

各位先進,小弟有的問題想請教一下
我想在Excel中運用VBA寫出下列的文字,並在欄位中輸入可以變更的文字
例如:在A1欄位中輸入p8p67後按下確認鍵後就會建立一個txt檔(或是文字檔)

~ Update `getnewdir` `new_dir_input` \
`p8p67-pre`
~ Activate `getnewdir` `OK_button`
~ Activate `file_open` `Open`
!%CISuccessfully changed to D:\p8p67-pre directory.
1 `Assembly`
~ Input `new` `InputPanel1` \
`p8p67-pre`
~ Update `new` `InputPanel1` \
`p8p67-pre`
~ Activate `new` `OK`

!01-Sep-10 11:41:38 Start D:\p8p67-pre\p8p67-pre.asm.1
!01-Sep-10 11:41:38 End D:\p8p67-pre\p8p67-pre.asm.1

若我在A1欄位中輸入p8p58的話則會建立如下

~ Update `getnewdir` `new_dir_input` \
`p8p58-pre`
~ Activate `getnewdir` `OK_button`
~ Activate `file_open` `Open`
!%CISuccessfully changed to D:\p8p58-pre directory.
1 `Assembly`
~ Input `new` `InputPanel1` \
`p8p58-pre`
~ Update `new` `InputPanel1` \
`p8p58-pre`
~ Activate `new` `OK`

!01-Sep-10 11:41:38 Start D:\p8p58-pre\p8p58-pre.asm.1
!01-Sep-10 11:41:38 End D:\p8p58-pre\p8p58-pre.asm.1

是否能夠這樣做??
作者: oobird    時間: 2010-9-7 10:23

這些亂七八糟的字符無法放在程式碼中,建議放在儲存格中,執行程式時以尋找取代方式改變須改變的字符,如p8p67,再寫入文字檔。
作者: Hsieh    時間: 2010-9-7 18:22

回復 1# hochoc
  1. Sub nn()
  2. mystr = "~ Update `getnewdir` `new_dir_input` \" & Chr(10) & _
  3. "`" & [A1] & "`" & Chr(10) & _
  4. "~ Activate `getnewdir` `OK_button`" & Chr(10) & _
  5. "~ Activate `file_open` `Open`" & Chr(10) & _
  6. "!%CISuccessfully changed to D:\" & [A1] & " directory." & Chr(10) & _
  7. "1 `Assembly`" & Chr(10) & _
  8. "~ Input `new` `InputPanel1` \" & Chr(10) & _
  9. "`" & [A1] & "`" & Chr(10) & _
  10. "~ Update `new` `InputPanel1` \" & Chr(10) & _
  11. "`" & [A1] & "`" & Chr(10) & _
  12. "~ Activate `new` `OK`" & Chr(10) & _
  13. "!01-Sep-10 11:41:38 Start D:\" & [A1] & "\" & [A1] & ".asm.1" & Chr(10) & _
  14. "!01-Sep-10 11:41:38 End D:\" & [A1] & "\" & [A1] & ".asm.1"
  15. Open "E:\TESTFILE.txt" For Output As #1 '輸出檔名自行修改
  16. For Each a In Split(mystr, Chr(10))
  17. Print #1, a
  18. Next
  19. Close #1
  20. End Sub
複製代碼

作者: hochoc    時間: 2010-9-7 19:24

本帖最後由 hochoc 於 2010-9-7 19:32 編輯

H哥,你好
假如如果我有一千多條像這樣的行列文字,當我運用你上述的方法
會出現"換行接續符號過多"的視窗
小弟在想,是否也可以用Notepad(記事本)中的取代功能,在Excel VBA中寫出程式
例如有固定字眼可以找出來,在Excel欄位中輸入所要變更的字眼做取代的做作
小弟學淺,請不另吝教導,謝謝!!
不好意思,在補上附件
附件中有p8p67-pre及xxxxx-xxx是固定字眼
作者: Hsieh    時間: 2010-9-7 19:46

回復 4# hochoc

樣本.txt的內容用特定字先將要用A1取代的字元取代
    ~ Update `getnewdir` `new_dir_input` \
`儲存格內容`
~ Activate `getnewdir` `OK_button`
~ Activate `file_open` `Open`
!%CISuccessfully changed to D:\儲存格內容 directory.
1 `Assembly`
~ Input `new` `InputPanel1` \
`儲存格內容`
~ Update `new` `InputPanel1` \
`儲存格內容`
~ Activate `new` `OK`

!01-Sep-10 11:41:38 Start D:\儲存格內容\儲存格內容.asm.1
!01-Sep-10 11:41:38 End D:\儲存格內容\儲存格內容.asm.1
  1. Sub nn()
  2. Open "C:\樣本.txt" For Input As #1 '樣本的完整路徑
  3. Open "C:\完成.txt" For Output As #2 '輸出檔案的完整路徑
  4. Do Until EOF(1)
  5.    Input #1, mystr
  6.    Print #2, Replace(mystr, "儲存格內容", [A1])
  7. Loop
  8. Close #1
  9. Close #2
  10. End Sub
複製代碼





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