0

我对宏很陌生,所以这可能是一个愚蠢的问题。我找了又找,还没有找到答案,希望这里的高手能帮帮我:)

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

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
4

1 回答 1

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 个元素,但我想这已经足够了)。

于 2013-09-22T12:25:48.810 回答