2013-02-01 131 views
2

我在我的程序下面的代码建立了一个更大的循环中application.worksheetfunction.sum没有评估串

CalculationHoldArray(Loopcount) = "'[" & Usefile1.Name & "]" & _ 
       Worksheet1 & "'!" & Cells1  & ",'[" & Usefile2.Name & "]" & _ 
       Worksheet2 & "'!" & Cells2 

Sheets("ECAP PARAMETER INPUTS").Cells(31, "F").Value = 
Application.WorksheetFunction.Sum(CalculationHoldArray(Loopcount)) 

的字符串返回数组进行评价是:

'[Control Model v1.35- nonfunctional.xlsm]Input'!E2, _ 
     '[Control Model v1.35- nonfunctional.xlsm]Input'!E3 

但是,application.worksheetfunction.sum返回错误1004.“无法获取工作表类的总和属性”。任何人都知道问题在于它不会让我在这里使用总和属性?

+0

'1.'你能告诉我们你在这段代码中使用的变量的声明吗?例如'LoopCount'等等。''2.'为什么你想用这种方式设置书籍,图表,单元格引用而不是使用'R1C1'公式或'范围偏移量'? – bonCodigo

+0

Loopcount定义为double,usefile1和usefile2作为工作簿,worksheet1和worksheet2作为字符串,cells1和cell2作为字符串,calculationholdarray作为15个字符串元素的数组。我为什么以这种方式设置?主要是因为我已经摆脱了15年的编程时间,从银行中解脱出来,现在我正在进行一些合同工作,以便尝试和维持生计。仅仅使用我以前做过的方式,并从未学会如何正确使用R1C1 –

+0

查看您的单元格字符串,您将从同一工作簿获取数据,同一工作表行'E2,E3'。但是你的变量显示'UserFile1'和'UserFile2' - >两个文件。那么你循环什么来填充数组?两个不同的文件或单个文件/工作簿? – bonCodigo

回答

0

但是我找到了一个解决方案 - 而不是使用application.worksheet.function命令,我可以简单地使用“EVALUATE”命令,只需在“sum”和括号内添加一个完整的公式即可 -

0

而不是使用Application.Worksheet.Function命令,只需使用Evaluate命令,该命令需要添加“sum”和括号以使其成为有效的公式。