【问题标题】:Difference between Application.sum and Application.Sum in Excel 2007 VBAExcel 2007 VBA中Application.sum和Application.Sum的区别
【发布时间】:2014-02-05 06:51:04
【问题描述】:

我正在 VBA 中编写一个宏来获取 Excel 2007 中某个范围的值的总和。但是,每当我尝试键入以下代码时:

sum = Application.Sum(Range("C2:C19")

编辑器把它变成:

sum = Application.sum(Range("C2:C19")

由于我不确定它们之间的区别,所以我在立即窗格中使用 Print 语句尝试了它们。带有 Application.sum 的那个给了我错误的总和,而带有 Application.Sum 的那个给了我正确的总和。但由于编辑器自动将 Sum 更改为 sum,我无法继续进行。谁能告诉我这里发生了什么?

【问题讨论】:

  • 将变量名从sum 更改为,例如mySum 然后再次尝试输入代码。或者尝试使用WorksheetFunction.Sum(Range("C2:C19"))
  • 我将sum 更改为transSum,但问题仍然存在。我需要一个变量中的总和,WorksheetFunction.Sum() 会做到这一点,我的意思是它向工作表中添加了函数,对吧?
  • WorksheetFunction.Sum()Application.Sum() 的工作方式几乎相同,它们在返回错误时需要处理的方式不同。试试WorksheetFunction.Sum()
  • 是的,它有效!非常感谢先生。

标签: excel vba excel-2007


【解决方案1】:

VBIDE 将“Sum”更改为“sum”的根本问题与编辑器的自动大写功能有关。您将变量声明为“sum”,在大小写方面优先于内置函数。如果您将变量声明为“Sum”,那么您将看不到变化。实际上,Application.Sum 和 Application.sum 是相同的。

您遇到的问题是您使用现有函数作为变量名。这就是它不起作用的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 2018-10-27
    相关资源
    最近更新 更多