2013-02-19 45 views
-4

我有一列,它将包含几行数据,然后是一个空白单元格。在列中向上计数直到空白?

我需要一种方法来计算一列中向上的行,直到一个空白单元格并使用VBA对数字进行求和。有任何想法吗?

+0

我一直在使用CurrentRegion但是如果有下一个数据到细胞不起作用试过,我想用VBA – SCGB 2013-02-19 12:33:28

+2

你尝试'xlUp'?编辑:你想尝试吗? – 2013-02-19 12:35:12

回答

2

我不是100%确定你在问什么。你说“总结数字”,但不要指定你想总结的数字是计算的行数还是你想总结找到的单元格的值。一旦一个空白单元格内被发现,将总结过去的空白单元格之间的细胞 这将在底部开始连续向上计数,直到它找到一个空白单元格 :

CNC中

这给一试和当前的空白单元格。

-Edit2-

添加的插入到下排列标题所以第一行也被总结。

Sub CountUp() 
    Dim TotalRows As Long 
    Dim TotalCols As Long 
    Dim Col As Long 
    Dim i As Long 
    Dim n As Long 

    Rows(2).Insert Shift:=xlDown 
    TotalRows = ActiveSheet.UsedRange.Rows.Count 
    TotalCols = ActiveSheet.UsedRange.Columns.Count 
    'Assumes Data you want to sum is in the first column 
    Col = 1 

    Cells(TotalRows, Col).Select 
    For i = TotalRows To 1 Step -1 
     If Cells(i, Col).Value <> "" Then 
      n = n + 1 
     Else 
      Cells(i, Col).Formula = "=SUM(" & Cells(i + 1, Col).Address(False, False) & ":" & Cells(i + n, Col).Address(False, False) & ")" 
      n = 0 
     End If 
    Next 
End Sub 
+0

非常感谢你 – SCGB 2013-02-19 16:41:22

+0

我更新了我的答案,以便在每个空白之间求和数据。 – Ripster 2013-02-19 16:41:31

+0

还有一件事,是否有可能将第一行计为空白?它不会实际上是空白的,但我认为这是与剧本混乱。 – SCGB 2013-02-19 16:53:40

0

假设列F作为列并且它有编号。尝试下面的代码。

Sub sumAndcount() 
    Dim recCount As Long 
    Dim recSum As Long 

    Range("A65000").Value = "=COUNT(F:F)" 
    recCount = Range("A65000").Value 

    Range("A65000").Value = "=SUM(F:F)" 
    recCount = Range("A65000").Value 
End Sub