Excel VBA:在一个范围内使用包含cell-index的变量

时间:2013-09-22 10:01:45

标签: vba range

我对宏很新,所以这可能是一个愚蠢的问题。我搜索并搜索过,还没有找到答案,所以我希望这里的专家能帮到我:)

在我的代码中,我有一个很大的范围,我搜索某个特征(所有单元格都有值“完成”,“正在进行”或“等待”)。当我找到值“正在进行”时,我想使用该单元格创建一个较小的范围,我将使用计数器。但是,我可以不使子范围工作:(

Dim range1 As Range

For Each cell In Sheet2.Range("A5:Y5")
    If cell.Value = "Ongoing" Then Set range1 = Cells(cell.Row, cell.Column)
Next cell

i = 0

For Each cell In Sheet2.Range("A5:range1")
    If cell.Value = "Done" Then
        i = i + 1
    End If
Next cell

1 个答案:

答案 0 :(得分:1)

这里有一个简单的代码,可以执行您想要的一些操作:

    Dim rangeToSearch As Range
    Dim doneCount As Integer, onGoingCount As Integer, onGoingDones(50) As Integer
    Set rangeToSearch = Sheet2.Range("A5:Y5")

    doneCount = 0
    onGoingCount = 0
    For Each cell In rangeToSearch
        If (Not IsEmpty(cell)) Then
            If LCase(cell.Value) = "done" Then
                doneCount = doneCount + 1
            ElseIf LCase(cell.Value) = "ongoing" Then
                onGoingCount = onGoingCount + 1
                onGoingDones(onGoingCount) = doneCount
                doneCount = 0
            End If
        End If
    Next cell

它计算“正在进行的”单元格之间的“完成”数量(上限无关紧要)并将它们存储在一个数组中onGoingDones;它可以处理多达50个元素,但我想这更多比够了。