2016-05-23 35 views
1

我試圖做一個循環,從一個電子表格中獲取多個範圍的總和,並在另一個電子表格中粘貼值。例如,當我使用範圍(「E10:E54」)時,我的循環可以工作,但它會在我的所有單元格中粘貼相同的總和值。我正在嘗試使用Range(Cells())移動到下一個範圍並獲得我的總和,但是當我嘗試這個時遇到了一個錯誤。我的代碼如下。我錯過了什麼?使用單元格在我的範圍在我的vba循環中的問題

這是我現在的代碼。我只取代 Range(Cells(10,5),Cells(54,5)))而不是Range(「e10:E54」),我得到一個bug。

Dim e As Long 
e = 1 

Do While e < 39 

    Cells(e, 5).Value = Application.Sum(Workbooks("Current Fcst.xlsm").Sheets("Sales").Range(Cells(10, 5), Cells(54, 5))) 
    e = e + 3 

Loop 


End Sub 

回答

1

你得到的錯誤,因爲範圍內的Cells()正在尋找活動工作表和範圍是在尋找一個不同的表。這是使用With Block的好時機。

Dim e As Long 
Dim ws as WorkSheet 

Set ws = ActiveSheet 

e = 1 

Do While e < 39 
    With Workbooks("Current Fcst.xlsm").Sheets("Sales") 
     ws.Cells(e, 5).Value = Application.Sum(.Range(.Cells(10, 5), .Cells(54, 5))) 
    End With 
    e = e + 3 

Loop 

通過設置父片直接包括活性片,EXCEL知道每個範圍對象所屬片。

.在三個對象前面告訴excel它屬於With塊父對象。

+0

好的,謝謝!我對VBA還是很新的。 –

+0

@sorenthomsen如果這個工作適合你,請點擊答案旁邊的複選標記以標記爲正確。只有你能做到這一點。 –

相關問題