【发布时间】:2016-08-15 15:17:46
【问题描述】:
我创建了一个包含一些值的工作表;它是一个日历,显示一年中每一天的一些信息。 对于每一天,我都会收到一封以信函形式提供的信息。 例如2016 年 2 月 3 日 --> “M”
我还有一个 VBA 函数,它计算一个月的单元格总和等于 - 比如说 - “M”。
我的第一次尝试是在 VBA 中使用 VBA 函数修改接收和的单元格的值;但我的问题是用户可以手动编辑日历的某些单元格,所以我希望自动重新计算总和单元格,但现在没有。
这是我的函数,位于名为“abc”的模块中:
Function nombreCellulesDansEtat2() As Integer
Application.Volatile
Dim moisSub
Dim équipeSub
Dim étatSub
moisSub = 1
équipeSub = 1
étatSub = "M"
Dim ligneDépart As Integer
ligneDépart = 5 + (moisSub - 1) * 9
Dim ligneEnCours As Integer
ligneEnCours = ligneDépart + équipeSub
Dim cellule
Dim retour As Integer
For Each cellule In sh.Range("B" & ligneEnCours & ":AF" & ligneEnCours)
retour = retour + IIf(cellule.Value = étatSub, 1, 0)
Next cellule
nombreCellulesDansEtat = retour
End Function
请不要关注团队编号(法语为“équipeSub”),它与问题无关。
包含总和的单元格有这个公式:
=nombreCellulesDansEtat2()
并启用了自动计算公式的选项(我在windows 10上使用excel 365)
错误是总和单元格包含:
#VALUE!
而不是所需的总和。
感谢您支持我糟糕的英语!
【问题讨论】:
-
当它给您错误时,您是否尝试过使用调试器单步执行它?
-
另外,您应该考虑更改帖子的名称。因为那个错误意味着excel确实尝试重新计算,但是出现了错误。
-
用 sh 代替 ActiveSheet 函数计算为整数