首页 > 解决方案 > For 循环不循环 - 仅拉出找到的第一个值

问题描述

我正在尝试在列中搜索包含某些文本的单元格,如果有,请复制其旁边的值并粘贴到指定范围的第一个空闲行中。下面是我正在使用的代码,它将返回一个值,但不会循环返回其他值。

Const SB As String = "*SB*"
Dim cel As Range
Dim sbcellvalue As Variant
Dim SBpull As Range
Dim SBpaste As Range

Set SBpull = Worksheets("SBImport").Range("Q:Q")
Set SBpaste = Worksheets("Misc").Range("SBRange")

For Each cel In SBpull.Cells

    If InStr(1, sbcellvalue, SB, vbTextCompare) > 0 Then
    
        sbcellvalue = cel.Offset(0, 1).Value
        SBpaste.Offset(1, 0).End(xlUp) = sbcellvalue
        
    End If
Next cel

MsgBox "search done"

End Sub

标签: excelvbafor-loop

解决方案


推荐阅读