返回列表 上一主題 發帖

[發問] 請問VBA 的程式有沒有可以辨認某個儲存格內的字元有無包含某幾個字串?

可以參考以下原始碼
紅字即為需搜尋得字串
Sub A()
                     工作表3.Cells(1, 16) = "搜尋目標源"
                     工作表3.Cells(1, 17) = "判斷是否找到"
                     工作表3.Cells(1, 18) = "關鍵字位置"
                     工作表3.Cells(1, 19) = "代碼"


        For i = 2 To ActiveSheet.Range("b2").CurrentRegion.Rows.Count
                If (InStr(1, 工作表3.Cells(i, 2), "內") >= 1) Then
                     工作表3.Cells(i, 16) = 工作表3.Cells(i, 2) '搜尋目標源
                     工作表3.Cells(i, 17) = "find" '判斷是否找到
                     工作表3.Cells(i, 18) = InStr(工作表3.Cells(i, 2), "內") '關鍵字位置
                     工作表3.Cells(i, 19) = "3"  '代碼
                     s = s + 1
                End If
        Next
              ' 工作表3.Cells(i, 17) = "find"
End Sub

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復 10# 198188


    大大您寫的好長....
    將兩個活頁簿合併成一個檔案判斷.. (寫法和 兩個活頁簿分開的寫法差不多)
   根據您所發問的問題,以簡易的程式判斷..

st1 = 工作表1.Range("a2").CurrentRegion.Rows.Count
st2 = 工作表2.Range("d2").CurrentRegion.Rows.Count

For k1 = 2 To st1
    For k2 = 2 To 233
        If 工作表2.Cells(k2, "D") = 工作表1.Cells(k1, "A") And (InStr(1, 工作表2.Cells(k2, "H"), "OBL") >= 1) Then
         '工作表2.Cells(k2, "c") = "對應到" & 工作表1.Cells(k1, "A")'此行為 在工作表2 C欄標註 D欄位是否有符合 工作表1  A欄位
         工作表1.Cells(k1, "J") = 工作表2.Cells(k2, "H")
        End If
    Next
Next

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復  GBKEE


With Sheet1                        (這句是否改With State sheet?)
With Sheet2      ...
198188 發表於 2013-3-9 23:00



    With Sheet1                        (這句是否改With State sheet?)  這種寫法應該會出現錯誤
除非有另外宣告

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復  GBKEE

If Worksheets("OHC").Range("G" & i) - Date
198188 發表於 2013-3-13 11:31



    If Worksheets("OHC").Range("G" & i) - Date   
  把兩段分開
If Worksheets("OHC").Range("G" & i)
-
Date

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

        靜思自在 : 道德是提昇自我的明燈,不該是呵斥別人的鞭子。
返回列表 上一主題