我试图总结一行,因为另一行与用户定义的变量具有相同的月份。我相信sumif函数是我最好的选择,但它似乎对我不起作用。我希望它看的行显然是一行日期格式的日期(使用.numberformat =“ddd mm / dd”)但是sumif似乎无法在每个单元格中选出月份。这是我到目前为止的代码:
Dim cMade As Integer
Dim sDate As Date
cMade = cMade + Application.WorksheetFunction.SumIf(ActiveSheet.Range("B1:RC1"), Month(sDate), ActiveSheet.Range("B30:RC30"))
正如您所看到的,sDate是用户通过userform投入的日期,然后我使用dateserial转换它。和B1-RC1是我想要它看的日期。和范围B30-RC30是我希望它在月份匹配时获取的总和(我将它作为+ cMade的原因是因为它在循环中循环通过工作表)。
这段代码是否正确?我一直在搞乱它,并寻找几个小时的替代品,但我似乎无法想出任何东西!
答案 0 :(得分:1)
假设这只是代码的一部分,我可能只猜测其余部分,请尝试以下更正:
Range("B30,RC30")
定义为Range("B30:RC30")
- 根据描述,这里的逗号看起来像拼写错误。Application.SumIf
替换为Application.WorksheetFunction.SumIf
。作为补充,请考虑更精确地定义范围,例如通过Worksheets("Sheet1").Range("A1:C10")
或ActiveSheet.Range("A1:C10")
语法。但是,这可能是一个额外的措施 - 我没有看到你的其余代码。
希望这在某种程度上有所帮助。