0

我试图总结一行,因为另一行与用户定义的变量具有相同的月份。我相信 sumif 函数将是我最好的选择,但它似乎对我不起作用。我希望它查看的行显然是带有日期格式的 Date 行(使用 .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 是用户通过用户表单输入的日期,然后我使用日期序列进行转换。B1-RC1 是我希望它查看的日期。如果月份匹配,范围 B30-RC30 是我希望它获取的总和(我将它作为 + cMade 的原因是因为它在循环中循环工作表)。

这段代码正确吗?我一直在弄乱它并寻找替代品几个小时,但我似乎什么也想不出来!

4

1 回答 1

1

假设这只是您代码的一部分,我可能只猜到其余部分,请尝试以下更正:

  1. 我认为你应该定义Range("B30,RC30")Range("B30:RC30")- 根据描述,这里的逗号看起来像是一个错字。
  2. 替换Application.SumIfApplication.WorksheetFunction.SumIf

另外,考虑定义更精确的范围,例如通过Worksheets("Sheet1").Range("A1:C10")ActiveSheet.Range("A1:C10")语法。但是,这可能是一项额外的措施 - 我看不到您的其余代码。

希望这对您有所帮助。

于 2013-02-02T13:51:57.210 回答