2017-06-27 22 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嘗試編輯。 –