2015-06-15 71 views
0

我正在爲我的工作設備數據庫工作,我試圖搜索一列中的每個單元格中的變量字符串,一旦找到該字符串,我需要將另一個變量分配給我正在搜索的列旁邊列中單元格的值。 我可以執行循環和迭代以及if語句,但是我很難找到一個函數來允許我爲一個字符串搜索特定的單元格。VBA搜索每個單元格迭代爲一個字符串

有什麼辦法可以指定一個單元格的搜索,有點像Cells(x,y).find()等等。還是不存在?另外,我在InStr()函數中發現了很多文檔,但它只計算字符串出現在列中的次數,對嗎?有沒有什麼方法可以返回該行,列中找到該字符串的單元格的col數量?感謝您提供任何幫助。

Sub Trans() 
Dim A As Range, r As Range, s As String 

Set A = Range("A2:A11") 

s = "T1" 

For Each r In A 
    If InStr(1, r.Value, s) > 0 Then 
     i = r.Row 
     Cells(i, C) = "here" 
    End If 

Next r 

End Sub   

回答

1

你是正確的關於可能使用InStr函數()。這裏是在搜索列的微小例如:

Sub SeekingHappiness() 
    Dim A As Range, r As Range, s As String 
    s = "happiness" 
    Set A = Range("A1:A10") 

    For Each r In A 
     If InStr(1, r.Value, s) > 0 Then 
      MsgBox r.Address & vbCrLf & r.Value 
     End If 
    Next r 
End Sub 

enter image description here

還有一個.Find()方法最小化循環。

+0

謝謝!我現在明白了InStr()函數的更好方法。現在我試圖使用r.Row值爲字符串被找到的同一行中的單元格賦值,但是我不斷收到錯誤1004-對象定義的錯誤。問題在於Cells(r.Row,B)=「Value」。你知道這個問題是什麼嗎? – raziel3lok

+0

@ raziel3lok我看不到你的代碼。 **更新您的原始帖子以包含您的代碼。** –

相關問題