VBA运行循环,直到达到实例数

时间:2016-01-25 18:49:38

标签: excel vba excel-vba loops count

我需要运行一个宏来修复excel表中的年份。 11月和1月左右的一年"是2010年,但我加上+ 1使其成为2011年。然后循环需要找到下一个" Nov_Jan"并做同样的2011 + 1 = 2012.为了停止循环,我知道我需要计算" Nov-Jan"的实例数量。并运行它作为多个实例。所以只有4" Nov-Jan",只运行循环4次。下面的代码在同一个单元格中运行循环,并且不会继续寻找下一个" Nov-Jan"。我无法弄清楚原因。我有一张图片显示我需要从"之前" - > "在"之后,我的代码来自"之前" - > "我拥有什么"。

Dim iCount As Integer 
Dim i As Integer

i = 1

iCount = Application.WorksheetFunction.CountIf(Range("B:B"), "Nov - Jan")

Cells.Find(what:="Nov - Jan", after:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Activate

Do Until i > iCount
    i = i + 1

    ActiveCell.Offset(0, -1).Select
    ActiveCell.Value = ActiveCell.Value + 1

    Cells.Find(what:="Nov - Jan", after:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Activate
Loop

我需要从"之前" - > "在"之后,我的代码来自"之前" - > "我拥有什么"

enter image description here

1 个答案:

答案 0 :(得分:3)

试试这个简单的代码:

KafkaUtils.createDirectStream

使用find方法时,它具有内置的下一个功能。它也可以分配到一个范围,然后可以操作它来完成所需的操作。

有关详细信息,请参阅HERE

在您的代码中,您正在循环,但循环每次都会重置搜索,因此每次只查找第一个。