2012-09-14 80 views
1

我想總結3列中的數據一個接一個,並將總數粘貼到三個單元格中的下一個表格中。我已經拿出了下面的代碼。它可以正常工作幾次,但然後開始拋出錯誤:運行時錯誤'1004'應用程序定義或對象定義的錯誤。恆定運行時錯誤'1004'

Sub test1() 

Dim Counter As Integer 
Counter = 1 

For i = 1 To 3 

Do Until ThisWorkbook.Sheets("Sheet1").Cells(Counter, i).Value = "" 

    ThisWorkbook.Sheets("Sheet1").Range(Cells(1, i), Cells(Counter, i)).Select 
    Counter = Counter + 1 

Loop 

    Value1 = Application.WorksheetFunction.Sum(Selection) 
    ThisWorkbook.Sheets("Sheet2").Cells(1, i).Value = Value1 

Next i 

End Sub 
+0

您是否嘗試過使用任何斷點調試或者'On Error Goto'來查看錯誤發生在哪一行? – psubsee2003

+0

適合我的工作 - 雖然我很努力地看到你想要達到的目標。作爲提示,您應該在代碼模塊的開頭添加「Option Explicit」,並聲明您正在使用的變量 - 例如在這種情況下,您宣佈了櫃檯但忘記了Value1和i。不知道1004應該從哪裏來。 – ExternalUse

回答

1

您無法在未激活的表單中選擇範圍,即導致錯誤的原因。

如果除Sheet1以外的任何工作表處於活動狀態,您的代碼將拋出您列出的錯誤。 作爲快速修復在循環之前添加Thisworkbook.Sheets("Sheet1").Activate

作爲一個更好的解決方案,你應該嘗試從你的代碼中選擇出來。

+0

謝謝Daniel!它有幫助。但我有另一個問題。在相同的代碼中,它只是直到第2列總結出來。For循環似乎沒有超出第2列,即使當我= 1到3.預先感謝, – user1671860

+0

它實際上,但我可以猜測是什麼問題。 ..因爲你永遠不會重置計數器的值爲下一個我繼續與最後一個值。要解決這個問題,請將'Counter = 1'移動到'For'循環的開頭。 –

+0

謝謝Daniel! – user1671860