Board logo

標題: 尋找特定字元,並將之後的字元改為大寫 [打印本頁]

作者: txiec    時間: 2011-2-9 18:11     標題: 求巨集-文字檔中之小寫英文轉大寫

DEAR 先進

求巨集-文字檔中之小寫英文轉大寫
EX: 檢視文字檔內之英文字,如有小寫,將它改為大寫取代之.   

PS: 有數個文字檔再檢查  


以上,再幫忙..
作者: HUNGCHILIN    時間: 2011-2-9 18:53

本帖最後由 HUNGCHILIN 於 2011-2-9 19:31 編輯

這種巨集需求量很大
網上也頗多
待我找一下

---------------------------------------------------------------------------
我很久以前有發過帖 在OFFICE精英俱乐部『 VBA交流 』Excel 增益集(加載宏)專區
#13 帖
*********************************************
現在放上來的是我以前的一個作品
是用來轉換英文大小寫用的
只要開啟SETUP那個檔
按SETUP就可以了
*********************************************
[ 本帖最后由 HUNGCHILIN 于 2006-10-22 21:37 编辑 ]
自動安裝(&使用說明)大小寫轉換.rar (86.09 KB)

等一下 我好像有改編過 到進階成品區去下載
[attach]4676[/attach]
http://forum.twbts.com/thread-2599-1-1.html
作者: Hsieh    時間: 2011-2-9 19:15

回復 1# txiec
  1.     Sub nn()
  2. fs = "ucase.txt" '文字檔位置
  3. fd = "temp.txt" '暫存檔預設目錄我的文件
  4. Open fs For Input As #1
  5. Open fd For Output As #2
  6. Do While Not EOF(1)
  7.     Line Input #1, TextLine
  8.     Print #2, UCase(TextLine)
  9. Loop
  10. Close #1
  11. Close #2
  12. Open fd For Input As #1
  13. Open fs For Output As #2
  14. Do While Not EOF(1)
  15. Line Input #1, TextLine
  16.     Print #2, UCase(TextLine)
  17. Loop
  18. Close #1
  19. Kill fd
  20. Close #2
  21. End Sub
複製代碼

作者: txiec    時間: 2011-2-10 10:18

DEAR Hsieh 先生


不好意思,又要麻煩您了,  
是否可幫忙改一下,  
ex:
,在 A資料夾中之 所有 txt  檔,     中之所有英文字,小寫改大寫, 大寫改小寫,  
儲存於原資料夾,  


拜個晚年,, 新年快樂..

ths.

txiec
作者: Hsieh    時間: 2011-2-10 10:44

回復 4# txiec
  1. Sub nn()
  2. fs = Dir("D:\A\*.txt") 'TXT檔案位置
  3. Do Until fs = ""
  4. fd = "temp.txt" '暫存檔預設目錄我的文件
  5. Open fs For Input As #1
  6. Open fd For Output As #2
  7. Do While Not EOF(1)
  8.     Line Input #1, TextLine
  9.     Print #2, UCase(TextLine)
  10. Loop
  11. Close #1
  12. Close #2
  13. Open fd For Input As #1
  14. Open fs For Output As #2
  15. Do While Not EOF(1)
  16. Line Input #1, TextLine
  17.     Print #2, UCase(TextLine)
  18. Loop
  19. Close #1
  20. Kill fd
  21. Close #2
  22. fs = Dir
  23. Loop
  24. End Sub
複製代碼

作者: txiec    時間: 2011-2-10 11:30

DEAR DEAR Hsieh 先生


不好意思.. 跑不動, 出現:找不到檔案.. :  

不知,請再幫忙修一下,

另請教,
1. 如來源資料夾,要設在EXCEL A2欄位中,應如何修.
2. 如來源檔案,無附檔名. 那用 fd = "temp.txt" '暫存檔預設目錄我的文件,回存於時,會影響檔名,

以上,再麻煩了,,.
作者: txiec    時間: 2011-2-10 14:07

DEAR Hsieh 先生


不好意思.. 跑不動, 出現:找不到檔案.. :  

不知,請再幫忙修一下,

1. 如來源資料夾,要設在EXCEL A2欄位中,應如何修.
2. 如來源檔案,無附檔名. 那用 fd = "temp.txt" '暫存檔預設目錄我的文件,回存於時,會影響檔名,  
3. 只需求檢查及改內容中之特別名稱之後之字元.
EX:

A資料夾中之
12 檔案中之

Ad(2): aer2,AER3,     
We1 Rf   : aer2
We2 Rf   : AER3     

轉成:

AD(2): AER2,AER3,   
We1 Rf   : AER2
We2 Rf   : AER3     



13 檔案中之

Ad(3): aers4,aes5,AERS6   
We1 Rf   : aers4
We2 Rf   : aes5     
We3 Rf   : AERS6      


轉成:

Ad(3): AERS4,AES5,AERS6   
We1 Rf   : AERS4
We2 Rf   : AES5     
We3 Rf   : AERS6      








以上,再麻煩了,,.

hi...
作者: txiec    時間: 2011-2-11 11:03

DEAR . 先進,,


請再撥空,給個簡單可用之巨集程式,,,,


萬分感謝...


祝心順,,
作者: txiec    時間: 2011-2-11 11:34     標題: 尋找特定字元,並將之後的字元改為大寫

dear . 先進,,

請再幫忙 改一下,
    以下為,先前用的... 將文字檔內之同excel a5 內容,取代為 b5    ,save.

需求.   
mystr = Replace(TEXTLINE, [a5], [b5])  ->>>>>>>??
如何改成, 尋找特定字元,並將之後的字元改為大寫 ??
請再幫忙..




Sub date_change()
fd = [a2]
fo = [B2]
If Dir(fo, vbDirectory) = "" Then
       MkDir fo
End If

fs = Dir(fd & "*.CSV")
Do Until fs = ""
Open fo & fs For Output As #2
  Open fd & fs For Input As #1
  Do While Not EOF(1)
   Line Input #1, TEXTLINE
   mystr = Replace(TEXTLINE, [a5], [b5])  ->>>>>>>??
   Print #2, mystr
Loop
Close #1
Close #2
'Kill fd & fs
fs = Dir()
Loop
End Sub
作者: kimbal    時間: 2011-2-13 13:36

你的意思是....:

原文是abcde
1.找cd
換成ZX
->
abZXe

還是....
2.
找cd
換成zx
->
abzxE

還是....
3.
找cd
換成zx
->
CDZXE

如果你提供的代碼沒錯
1的做法:
mystr = Replace(TEXTLINE, [a5], UPPER([b5]))
3的做法:
mystr = UPPER(Replace(TEXTLINE, [a5], [b5]))
作者: Hsieh    時間: 2011-2-13 14:17

字串中搜尋特定字元位置可使用instr找到位置
用mid獲得與轉寫的字串
再使用Ucase轉成大寫
最後使用replace取代
作者: txiec    時間: 2011-2-14 08:28

回復 10# kimbal


DEAR

不好意意.
再解釋一下,

是,要找,特定字申,並將此字申之後之所有字元改成大寫.
EX:
姓名: a,b,C,D

-->

姓名: A.B,C,D  

其中:姓名: 回定..
之後英文是會有不同, ,
只要將字元改成大寫.即可.
作者: txiec    時間: 2011-2-14 08:37

回復 11# Hsieh


    DEAR Hsieh

    方便的話, 給個範例... 因,不是很懂的VB...
作者: Hsieh    時間: 2011-2-14 10:15

本帖最後由 Hsieh 於 2011-2-14 10:22 編輯

回復 13# txiec
  1. Sub nn()
  2. mystr = "姓名: a,b,C,D " '原字串
  3. replacestr = "姓名: " '搜尋字串(不轉大寫)
  4. k = InStr(mystr, replacestr) + Len(replacestr)
  5. temp = Mid(mystr, k) '欲轉成大寫字串
  6. MsgBox Replace(mystr, temp, UCase(temp))
  7. End Sub
複製代碼

作者: txiec    時間: 2011-2-14 15:25

回復 14# Hsieh


    dear Hsieh  

    sorry.  

    需求說的不是很清楚.. 附上附件.


   再麻煩您了。。。 
作者: Hsieh    時間: 2011-2-14 15:35

回復 15# txiec


    這種問題必需考慮所有文字檔的規則
作者: txiec    時間: 2011-2-14 16:00

回復 16# Hsieh


    dear ..

是的,了解.  

是否有機會,直接找  
" ), "    之後,之字申,轉大寫
" M/C(2)  "
作者: Hsieh    時間: 2011-2-14 16:06

回復 17# txiec


    給的方法你自己都不試嗎?
作者: txiec    時間: 2011-2-14 17:52

回復 18# Hsieh


   DEAR Hsieh  

 我TRY 看看,...

  THS.
作者: txiec    時間: 2011-2-15 14:47

DEAR..

太難了,TRY 不動,,,
還請各位先進,,, 幫幫....
作者: Hsieh    時間: 2011-2-15 19:51

回復 20# txiec
上傳你的文字檔作說明
作者: txiec    時間: 2011-2-16 08:48

回復 21# Hsieh


    DEAR Hsieh  

    再麻煩了.
作者: Hsieh    時間: 2011-2-16 11:29

回復 22# txiec
  1. Sub Ex()
  2. fd = ThisWorkbook.Path & "\" '文字檔目錄
  3. fs = Dir(fd & "*.txt") '目錄中的文字檔名
  4. Do Until fs = ""
  5. Open fd & "temp.txt" For Output As #2 '準備暫存檔
  6.   Open fd & fs For Input As #1 '開啟要轉為大寫的文字檔作輸入用
  7.   Do While Not EOF(1)
  8.    Line Input #1, mystr
  9.    If mystr Like "M/C(*),*" Then '如果該字串類似此樣式
  10.    restr = Mid(mystr, InStr(mystr, "),")) '取得要轉為大寫的部份字串
  11.    mystr = Replace(mystr, restr, UCase(restr)) '將原變數
  12.    End If
  13.    Print #2, mystr '將已經轉成大寫的字串寫入暫存檔
  14. Loop
  15. Close #1
  16. Close #2
  17. Open fd & fs For Output As #2 '打開需轉寫的文字檔準備寫入
  18.   Open fd & "temp.txt" For Input As #1 '開啟已轉成大寫的暫存檔
  19.   Do While Not EOF(1)
  20.   Line Input #1, mystr '讀出暫存檔資料
  21.   Print #2, mystr '將暫存檔字串寫入需修改檔案
  22.   Loop
  23. Close #1
  24. Close #2
  25. Kill fd & "temp.txt" '刪除暫存檔
  26. Loop
  27. End Sub
複製代碼

作者: txiec    時間: 2011-2-19 07:59

回復 23# Hsieh


    DEAR ..

     THS... 我再趕快TRY 看看,,, 感謝..




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