Board logo

標題: 簡單的取代Sheet內的值 [打印本頁]

作者: ffntldj    時間: 2011-12-5 20:16     標題: 簡單的取代Sheet內的值

抱歉 卡關 又來詢問 ,請高手教我一下 麻煩了 謝謝

以下是我的部分code
EQP_FAB = cells(2,18).value '(值是TG)

File1=dir (path & "*.xls")
Workbooks.open  path & File1
set sh = activeworkbook.worksheets(shname)   ' 如以下的ex:

for each word in sh.range(sh.[A1],sh.[F1])
if word = "EQP_ID" Then      (當第一列讀到EQP_ID的時候,EQP_ID的下一列sampl1:TE@123或是sampl2:TF123 要換成TG@123)

CurrentCell= word.address  (想去抓Cell的位址,但這邊不會寫)

end if
next


ex:  兩種檔案,都是要去認 EQP_ID
1.                                                2.
  PDID      EQP_ID    ACTION                    PDID    RE_ID   EQP_ID    ACTION
  xxx         TE@123    xxx                         xxx      xx       TF@123    xxx
  xxx         TE@645    xxx                         xxx      xx       TF@645    xxx
  xxx         TE@124    xxx                         xxx      xx       TF@124    xxx

(往下還有資料 ,只列三筆)

結果:

1.                                                2.
  PDID      EQP_ID    ACTION                    PDID    RE_ID   EQP_ID    ACTION
  xxx         TG@123    xxx                         xxx      xx       TG@123    xxx
  xxx         TG@645    xxx                         xxx      xx       TG@645    xxx
  xxx         TG@124    xxx                         xxx      xx       TG@124    xxx
作者: Hsieh    時間: 2011-12-5 22:39

回復 1# ffntldj


    Cells.Replace "T*@", "TG@", lookat:=xlPart
作者: ffntldj    時間: 2011-12-5 22:49

本帖最後由 ffntldj 於 2011-12-5 22:52 編輯

回復 2# Hsieh


    謝謝版大! 抱歉明天才能試~謝謝你 每次都要你幫忙~

  請問是加在這裡嘛? 只需要一行? 太神奇了@@ 我想了好久~

  lookat:=xlPart 不太會使用 他是只會往下找 還是整張SHEET都會去改?

  因為怕改到別的資料~ 謝謝

if word = "EQP_ID" Then      (當第一列讀到EQP_ID的時候,EQP_ID的下一列sampl1:TE@123或是sampl2:TF123 要換成TG@123)

這裡

end if
作者: Hsieh    時間: 2011-12-5 23:19

回復 3# ffntldj
  1. Sub ex()
  2. MyPath = "D:\" '資料目錄
  3. shname = "要找的工作表" '要做取代動作的工作表名稱
  4. fs = Dir(MyPath & "*.xls") '找活頁簿
  5. Do Until fs = ""
  6. With Workbooks.Open(MyPath & fs) '開啟檔案
  7. Set sh = .Worksheets(shname)  '指定要做取代動作的工作表
  8. Set a = sh.Rows(1).Find("EQP_ID").EntireColumn '找到標題的整欄範圍
  9. a.Replace "T*@", "TG@", lookat:=xlPart '在欄位中做取代的工作
  10. .Close 1 '儲存後關閉檔案
  11. End With
  12. fs = Dir '下一個活頁簿
  13. Loop
  14. End Sub
複製代碼

作者: ffntldj    時間: 2011-12-5 23:49

回復 4# Hsieh


    Set a = sh.Rows(1).Find("EQP_ID").EntireColumn '找到標題的整欄範圍

  有了這行 我又進步了 謝謝!! 非常感謝~




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