【问题标题】:VBA Excel Comparing rowsVBA Excel 比较行
【发布时间】:2012-08-24 13:35:50
【问题描述】:

我正在尝试为我的个人银行帐户执行基于 Excel 的工具。我在一张有 3 列(DateInformationAmount)的工作表中导入了一些银行操作 Import。我想将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 不起作用。如何在每一行上制作这个循环?

【问题讨论】:

    标签: vba excel compare


    【解决方案1】:

    循环遍历一系列行For Each row In CollectionRange.Rows 是正确的。

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

    也就是说,请注意,在这样的范围内循环可能会很慢。如果您对代码的性能不满意,可以使用AutoFilterFindVariant Arrays 等替代方法

    【讨论】:

      猜你喜欢
      • 2013-02-27
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 2019-03-16
      相关资源
      最近更新 更多