【发布时间】:2017-10-19 14:13:39
【问题描述】:
我是新来的,也是 vba 的新手。我试图做一个 countif,如果答案超过 0,则超过了标准,因此我在 500 多行上有双重检查问题。
Sub DoubleCheck()
'Variables declaration
Dim row_rounter As Long, rngQ As Range, cel As Range, resDblChq As Variant, rngB As Range, rngC As Range, rngF As Range, rngH As Range, rngI As Range
row_counter = Sheets("GW-DB").Cells(Cells.Rows.Count, "B").End(xlUp).Row 'row counter
'Range Initializatoin
Set rngQ = Sheets("GW-DB").Range("Q2:Q" & row_counter)
Set rngC = Sheets("GW-DB").Range("C2:C" & row_counter)
Set rngF = Sheets("GW-DB").Range("F2:F" & row_counter)
Set rngH = Sheets("GW-DB").Range("H2:H" & row_counter)
Set rngI = Sheets("GW-DB").Range("I2:I" & row_counter)
Set rngB = Sheets("GW-DB").Range("B2:B" & row_counter)
'Loop starts to validate possibility of double cheques
For Each cel In rngQ
' countif same name, same date,same amount, same reason
resDblChq = Application.WorksheetFunction.CountIfs(rngB, c.Offset(0, -16).Value, rngC, c.Offset(0, -15).Value, rngF, c.Offset(0, -12).Value, rngH, c.Offset(0, -9).Value, rngI, c.Offset(0, -8).Value)
' if it counts more than 0 it means there's a possibility of having double cheques issued
If resDblChq > 0 Then
c.Value = "Possible payment made twice"
End If
Next cel
End Sub
谢谢你,我想保留最简单的方法以供进一步修改
【问题讨论】:
-
我忘了说错误是需要错误 424 对象
-
它在哪一行抛出错误?
-
请参阅this answer 以了解为什么您会收到该特定错误,并注意在模块顶部指定
Option Explicit可以防止该错误。 -
谢谢你所有的 aswner 这真的是因为参考 c。
-
还有一个问题:我使用 countif 但它返回 0。我查了一下,他们说 countifs,arg1 是范围,arg2 to ... 是标准。但是,如何放置多个范围?
标签: vba excel worksheet-function countif