我有一个模板工作簿,由相互复制的相同工作表组成。我在每个工作表上使用的 VBA 项目中有大约 10 个函数。然后,我将模板保存为启用宏的工作簿并填写。我已经这样做了两次,所以我现在有两个工作簿,比如 workbookA.xlsm 和 workbookB.xlsm,它们直接来自该模板。每个工作表都有很多分组的列,即可以通过屏幕左侧顶部的 + 或 - 号切换来隐藏的列。我将计算模式设置为手动。我正在使用 Excel 2007。
我的一个函数称为 SUM_TOTAL(如下所示),它采用 2 个范围和一个字符串,如果字符串在第一个范围内,则将第二个范围的项目相加。
我在计算过程中遇到问题,如果我有它在自动计算或者如果我按“立即计算”,那么活动工作表将计算正常,但是许多其他相同的工作表将给出与活动工作表相同的值,其中给出了函数 SUM_TOTAL。我认为有些工作有些不工作与并非所有单元格每次都得到计算的事实有关。它向我表明,这些工作表并不完全独立,但我看不出它们有任何联系方式。
我编写了一个宏,它在工作表中循环并执行“计算表”,但我认为这就是“现在计算”的作用?我想了解它,因为其他人最终会使用该模型,我需要知道它是健壮的。
任何帮助将不胜感激,尽快!
非常感谢,
Public Function SUM_TOTAL(amount_type As String, amount_type_column As Range,
range_to_sum As Range) As Single
Dim cell As Range
SUM_TOTAL = 0
For Each cell In amount_type_column
If cell.Value = amount_type Then
SUM_TOTAL = SUM_TOTAL + Cells(cell.Row, range_to_sum.Column).Value
End If
Next cell
End Function