2010-06-02 54 views
1

我想总结Excel VBA中的一列,但是因为有空格,所以我得到0作为总和。Excel VBA - 总结一列

Dim rExternalTotal As Range , dExternalTotal as Double 
Set rExternalTotal = Range(rReportData.Offset(0, 0), rReportData.Offset(261, 0).End(xlUp)) 
dExternalTotal = Application.WorksheetFunction.Sum(rExternalTotal) 

dExternalTotal始终为零。我无法删除工作表上的空白处。任何人都可以提出一种方法来编程的总和?

+0

呃,我更喜欢原始帖子的格式。只是讨厌水平滚动条... – code4life 2010-06-02 19:05:06

+0

什么是rReportData? – KevenDenen 2010-06-02 19:20:32

+0

rReportData只是另一个范围 – Kojof 2010-06-03 11:27:08

回答

2

我认为你错误地解释了错误的根源; rExternalTotal似乎等于单个单元格。rReportData.offset(0,0)等于rReportData
rReportData.offset(261,0).end(xlUp)很可能也等于rReportData,因为您偏移了261行,然后使用.end(xlUp)函数,它选择连续数据范围的顶部。
如果你有兴趣,在短短一列的总和,你可以参考整个列:

dExternalTotal = Application.WorksheetFunction.Sum(columns("A:A")) 

dExternalTotal = Application.WorksheetFunction.Sum(columns((rReportData.column)) 

的工作表函数总和将正确忽略空格。

让我知道这是否有帮助!

+0

谢谢你的回复,但是它总是给我零。 – Kojof 2010-06-03 08:52:23

+0

这一行代码,没有任何上述工作对我来说(用额外的代码行来初始化rReportData),我在各种列上测试过;你在初始化rReportData吗?你能发布完整的代码,包括你在哪里显示dExternalTotal吗? – goggin13 2010-06-03 15:15:59

+0

抱歉代码太长,无法发送。但是rReportData只是一个正常范围。数据如下所示:COLUMN C
7,000,000.00 7,130,000.00 5,165,000.00 3,360,000.00 2,030,000.00 3,420,000.00 5,170,000.00 1,650,000.00 – Kojof 2010-06-03 22:41:37

2

如果您想在Excel中添加一列数字,您可以执行以下操作。 (我用Excel 2010中,但不应该有所作为。)

例: 比方说你要添加在B列的形式B10细胞到B100 &想要的答案是在小区X或者是变量x( X可以是任何单元格或任何您创建的变量,例如Dim X,如整数等)。下面是代码:

Range("B5") = "=SUM(B10:B100)" 

X = "=SUM(B10:B100) 

有括号内没有引号“= SUM(B10:B100),但也有范围的括号内引号(” B5 “)。还有就是平等双方之间的符号和报价到它的右侧的空间。

如果某些单元格是空的也都不重要,它只会看到他们作为包含零!

这应该为你做!

0

我的表单上有一个标签,它接收Sheet1中列D的数字总和。我只对第2到第50行感兴趣,如果你的行数是动态的,你可以使用行计数器。我在D列中也有一些空白条目,它们被忽略。

Me.lblRangeTotal = Application.WorksheetFunction.Sum(ThisWorkbook.Sheets("Sheet1").Range("D2:D50"))