首页 > 解决方案 > 如何使函数递归

问题描述

我有大量数据(几乎 12k 行)。我想在 A 列搜索关键字(例如:名称“),然后将其相应的值从 B 列移动到新工作表。我有这个工作但不知道如何使其递归,所以它看起来全部 12k A列中的条目。请帮助。

请参阅下面的脚本,该脚本有效,但需要递归

Sub Test()

With Sheets("original")
    If .Range("A24").Value = "Name        " Then
        Sheets("new").Range("A1").Value = .Range("B24").Value
    End If
End With

End Sub

标签: excelvba

解决方案


您可以遍历单元格范围并使用偏移量来获取 B 列中的值以放置在新工作表中。它不需要递归

Sub Test()
Dim c As Range
Dim iRow As Long
    iRow = 1
    For Each c In Sheets("original").Range("A:A")
    If c.Value = "Name        " Then
        Sheets("new").Cells(iRow, 1).Value = c.Offset(0, 1).Value
        'move to the next row
        iRow = iRow + 1
    End If
    Next c
End Sub

推荐阅读