我正在尝试为我的个人银行帐户执行基于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
不起作用。如何在每一行上进行此循环?
答案 0 :(得分:0)
对于一系列行For Each row In CollectionRange.Rows
进行循环是正确的。
MsgBox row.Value
然后无效的原因是row.Value
是一个数组。要查看数组中的某个值,请使用类似row.Cells(1,1).Value
那就是说,请注意在这样的范围内循环可能会非常慢。如果您对代码的效果不满意,可以选择AutoFilter
,Find
和Variant Arrays