1

我正在尝试为我的个人银行帐户执行基于 Excel 的工具。我在一张Import有 3 列 ( Date, Information, Amount) 的表格中导入了一些银行业务。我想将每一行与Import另一张表中已经建立的集合进行比较Data

我创建了一个函数来测试每一行(根据日期然后是必要的信息,然后是必要的数量),如果数据集合中不存在操作并且数据集合中的行号不存在,则返回 0。

Function CompareRows(SingleRng As Range, CollectionRange As Range) As Integer
    'SingleRange : Date / Info / amount in on line
    'CollectionRange : Date / info / amount / ....(others) on many rows
    'Return 0 if SingleRng is not in CollectionRange, row number of data 
                                                  'collection if present.

    Dim row As Range
    For Each row In CollectionRange
        MsgBox row.Value

       ' If SingleRng(1, 1) = Rng_1(1, 1).Value Then
       '     CompareRows = irw
       ' Else
       '     irw = irw + 1
       ' End If
    Next
End Function

此函数将针对工作Import表中的每一行循环,但我不能先循环每个日期元素。此循环在CollectionRange. 我试着做For Each row In CollectionRange.Rows,但MsgBox之后不起作用。如何在每一行上制作这个循环?

4

1 回答 1

0

对于在一系列行上循环For Each row In CollectionRange.Rows是正确的。

MsgBox row.Value然后不起作用的原因row.Value是数组。要查看数组中的一个值,请使用类似row.Cells(1,1).Value

也就是说,请注意,在这样的范围内循环可能会非常慢。如果您对代码的性能不满意,还有其他替代方法,例如AutoFilter,FindVariant Arrays

于 2012-08-25T05:10:09.003 回答