Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 2007 VBA中Application.sum和Application.sum之间的差异_Excel_Vba_Excel 2007 - Fatal编程技术网

Excel 2007 VBA中Application.sum和Application.sum之间的差异

Excel 2007 VBA中Application.sum和Application.sum之间的差异,excel,vba,excel-2007,Excel,Vba,Excel 2007,我正在用VBA编写一个宏,以获取Excel2007中某个范围的值之和。但是,每当我尝试键入以下代码时: sum = Application.Sum(Range("C2:C19") 编辑器将其转换为: sum = Application.sum(Range("C2:C19") 由于我不确定它们之间的区别,我在即时窗格中用Print语句尝试了它们。有Application.sum的那个给了我错误的和,而有Application.sum的那个给了我正确的和。但是,由于编辑器会自动将总和更改为总和,

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

sum = Application.Sum(Range("C2:C19")
编辑器将其转换为:

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

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

为什么VBIDE将“Sum”更改为“Sum”的根本问题与编辑器的自动大写功能有关。您将一个变量声明为“sum”,当涉及到大小写时,它优先于内置函数。如果将变量声明为“Sum”,则不会看到更改。实际上,Application.Sum和Application.Sum是相同的


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

将变量名从
sum
更改为,例如
mySum
,然后再次尝试键入代码。或者尝试使用
工作表function.Sum(范围(“C2:C19”)
I将
Sum
更改为
transSum
,但问题仍然存在。我需要一个变量中的和,
WorksheetFunction.sum()
是否可以实现这一点,我的意思是它会将函数添加到工作表中,对吗?
WorksheetFunction.sum()
Application.sum()
的工作原理几乎相同,它们在返回错误时需要处理的方式不同。只要试试
WorksheetFunction.Sum()
。是的,它可以工作!非常感谢,先生。