对于列循环中的单元格 - 根据循环中的位置指定相邻列单元格的值

Ale*_*ter 1 excel vba excel-vba

我已经整理了一个excel VBA宏,它循环遍历列I中所有使用过的单元格,并检查单元格的值是否与单词匹配.

如果单词是匹配的,我想在列B中的相邻单元格中设置1-5之间的随机数.

这是我到目前为止所拥有的:

Dim FLrange As Range
Dim AllStockLastRow As String
AllStockLastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1
Set FLrange = Range("I2:I" & AllStockLastRow)

For Each cell In FLrange
    If cell.Value = "Shure" Then
        Range("B2").Value = Int((5 - 1 + 1) * Rnd + 1)
        Else
    End If
Next cell
Run Code Online (Sandbox Code Playgroud)

显然,这段代码不起作用,因为它只会一遍又一遍地重置单元格B2的值.我不知道如何,但我希望代码检查I2的值,并设置B2的随机数值.然后检查I3的值,并设置B3等的随机数......

对不起,如果这里的措辞令人困惑.如果我知道这个术语,我可能会通过谷歌找到答案,而不必浪费你的时间:(

Cal*_*mDA 5

避免ActiveSheet完全限定您的参考资料:

Dim FLrange As Range
Dim AllStockLastRow As String

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1") 'your sheet name

With ws 
    AllStockLastRow =.Cells(.Rows.Count, "A").End(xlUp).Row + 1
    Set FLrange = .Range("I2:I" & AllStockLastRow)
End With

For Each cell In FLrange
    If cell.Value = "Shure" Then
        ws.Range("B" & Cell.Row).Value = WorksheetFunction.Randbetween(1,5)
    End If
Next cell
Run Code Online (Sandbox Code Playgroud)