因为昏暗的循环,InStr不工作

我正在慢慢构build这个代码,因为我想学习VBA以备将来使用。 我的代码的这一部分的目的是查看是否一个单元格的值包含在同一工作簿的单元格中的另一个工作表内。 如果这是真的,那么我想在Worksheets(“FDSA”)中将同一行的第10列标记为“ok”,如果不是,则不写任何内容。

Sub test1() Dim Str As String Dim Search As String Str = Cells(2, 5).Value Search = Worksheets("FDSA").Cells(2, 5).Value If InStr(Search, Str) > 0 Then Worksheets("FDSA").Cells(2, 10).Value = "ok" End If End Sub 

我昨天得到了一个答案,帮助了很多(顶部)。 我现在正在试图为该代码做一个循环。 现在是(下)。

 Sub test1() For X = 2 To 5 For Y = 2 To 5 Dim Str As String Dim Search As String Str = Cells(X, 5).Value Search = Worksheets("FDSA").Cells(Y, 5).Value If InStr(Search, Str) > 0 Then Worksheets("FDSA").Cells(Y, 10).Value = "ok" Else Worksheets("FDSA").Cells(Y, 10).Value = "" End If Next Y Next X End Sub 

我跑了一个testing,看看它是否工作,它没有。 我做了这样的单元格(5,5)不包含在工作表(“FDSA”)里面,单元格(Y,5)还是写好了。 在做了一些研究之后,我得出结论:暗淡的存储可能是问题(它使用的是匹配的首字母的值)。我尝试使用ReDim并清除但不能运行代码。 感谢您的帮助,请让我知道如果您需要更多的解释。

–Alexis M.

我想你只想要一个循环:

 Sub test1() Dim Str As String Dim Search As String Dim X as Long For X = 2 To 5 Str = Cells(X, 5).Value Search = Worksheets("FDSA").Cells(X, 5).Value If InStr(Search, Str) > 0 Then Worksheets("FDSA").Cells(X, 10).Value = "ok" Else Worksheets("FDSA").Cells(X, 10).Value = "" End If Next X End Sub