返回列表 上一主題 發帖

[發問] 擷取符合條件的字串文字

[發問] 擷取符合條件的字串文字

本帖最後由 loyyee 於 2011-11-24 22:28 編輯

請問各位大大,如何由檔案中"A欄"字串中,擷取符合條件的字串文字於"B~D欄"
擷取符合條件字串.rar (4.26 KB)

回復 9# GBKEE


    感謝GBKEE版大
   這次使用了Split Mid Replace Match...函數

TOP

本帖最後由 GBKEE 於 2011-11-25 08:31 編輯

回復 7# register313
另一寫法
  1. Sub Ex()
  2.     Dim AR, R As Range, S , E
  3.     Range("E2:E500").ClearContents
  4.     AR = Split(Mid(Replace([E1], "之製程", ""), 2), "、")
  5.     For Each R In Range("A2:A500")
  6.         S = Split(R & "," & R.Offset(0, 1), ",")
  7.         For Each E In S
  8.             If Not IsError(Application.Match(E, AR, 0)) Then
  9.                 R.Offset(0, 4) = R.Offset(0, 4) & IIf(R.Offset(0, 4) = "", "", "+") & E
  10.             End If
  11.         Next
  12.     Next
  13. End Sub
複製代碼

TOP

回復 7# register313

感謝,給您一個讚啦!

TOP

回復 6# loyyee


    倏改GBKEE版大之"擷取符合條件的字串"程式而來

擷取符合條件字串-2.zip (8.35 KB)

TOP

回復 4# GBKEE

感謝版大與register313熱心解答。

再延伸問題:如果"A欄"、"B欄"有二個不同字串,
要在"E欄"擷取符合條件的字串文字時,該如何修改巨集?
擷取符合條件字串-2.rar (4.39 KB)

TOP

回復 4# GBKEE


    感謝版大
   小弟只會VBA的簡單語法 每次程式碼總是寫很長
   學會更多語法 可讓程式碼易於閱讀也節省時間
   希望還有機會讓版大指導

TOP

回復 2# register313
簡化一下
  1. Sub Ex()
  2. Dim R As Range
  3. Range("B2:D500").ClearContents
  4. For Each R In Range("a2:a500")
  5.     If InStr(R, "OO") And InStr(R, "PP") Then
  6.         R.Offset(0, 3).Value = "OO+PP"
  7.     ElseIf InStr(R, "OO") Then
  8.         R.Offset(0, 1).Value = "OO"
  9.     ElseIf InStr(R, "PP") Then
  10.         R.Offset(0, 2).Value = "PP"
  11.     End If
  12. Next
  13. End Sub
複製代碼

TOP

擷取符合條件的字串文字

回復 2# register313

可以用了,感謝您~

TOP

回復 1# loyyee

擷取符合條件字串.zip (10.46 KB)

TOP

        靜思自在 : 【時間無法遮擋】怕時間消逝,花了許多心血,想盡各式方法要遮擋時間,結果是:浪費了更多時間,且一無所成!
返回列表 上一主題