2017-06-27 20 views
0

我有一个奇怪的问题,即不仅行和列中的值不断变化,偶尔行数也会变化;说30至70行之间的任何地方。我已经尝试了一个代码(我是新的excel vba ...),如下所示,我可以将选定的代码复制到另一个表单中。这是因为,随着行更改,每列的总和不正确,为了解决这个问题,我试图将数据从源表复制到另一个表。修复代码的任何帮助都很棒!谢谢!总结多列和多行的动态范围

数据结构如下:

A B C 
229 498 134 
119 111 314 
298 265 698 
298 264 124 
427 373 174 
102 532 245 

Excel的VBA代码

Sub dynamicRange() 

Dim startCell As Range, lastRow As Long, lastCol As Long, Ws As Worksheet 

Set Ws = Sheets("N_TS") 
Set startCell = Range("A3") 

lastRow = Ws.cells(Ws.Rows.Count, startCell.Column).End(xlUp).Row 
lastCol = Ws.cells(startCell.Row, Ws.Columns.Count).End(xlToLeft).Column 

Ws.Range(startCell, Ws.cells(lastRow, lastCol)).Select 
Selection.Select 
Selection.Copy Sheets("Sheet3").Range("A1") 

End Sub 

注意 - 这是上面完子,我不知道如何编写代码来总结所有列同时作为一个范围...

+0

所以,你要计算的总和* *范围内的所有条目? –

+0

为了更清楚一点,我希望每列的总和在同一列中可以看到。正如我已经解释的那样,Row的变化(有时候会变成4甚至10,然后在一分钟左右之内就会被添加,这是基于用户的日志输入的,希望我能够生动地解释它。你.. – Prabhu

回答

0

不知道如何编写代码来将所有列同时作为范围来总结作为范围

删除最后三行,并把这个改为:

With Sheets("Sheet3").Range("A1").Resize(lastCol) 
    .Formula = "=SUM('N_TS'!A3:A" & lastRow & ")" 
    .Value = .Value 
End With 
+0

嗨,代码只计算(?无法理解如何来...... A1-1244,A2-1125,A3-827作为单列的SUM实际上,因为N_TS表的行随着数据流动而动态变化,我认为将数据复制到最后一行到新表“3”,然后求和表3中的所有列。这个公式不符合我的目的... 。 – Prabhu

+0

@Prabhu尝试编辑。 –