2015-06-27 174 views
0

這是我的代碼:Excel的VBA運行時錯誤1004,而我不能確定

Sub VerticalLoop() 

Dim i As Integer 

Range("VerticalLoop").Activate 

i = 1 

Do While i <= Range("VerticalLoop").Rows.Count 

ActiveCell.Value = i 
ActiveCell.Offset(1, 0).Activate 
i = i + 1 

    Loop 



End Sub 

出於某種原因,我無法運行此。當我按F8時,當我到達「i = 1」這一行時,彈出錯誤,所以我不知道我做錯了什麼。

+3

你確定這是失敗的行i = 1?什麼是錯誤描述?通常對於1004,它是yy類失敗的格式xx方法。例如,如果命名的範圍不存在,則會在Activate行上顯示該錯誤編號,其描述爲「Activate method of Range class failed」。我想不出在i = 1行上出現這個錯誤的原因。 – Jane

+0

@Jane我在一張表中完成了這項工作,當我將代碼複製並粘貼到一個完美工作的模塊中時 –

回答

1

如果包含定義名稱表還沒有這個代碼將失敗先激活!

+0

這是錯誤,謝謝。 –

0

的錯誤是在該行

Range("VerticalLoop").Activate 

該錯誤可能是範圍的名稱的拼寫錯誤。你確定它不應該是「Vertical_Loop」(帶下劃線)嗎?

另一方面,加里的學生是正確的,可以通過嘗試激活一個不活躍工作表中的範圍觸發'1004'錯誤。錯誤信息本身(而不僅僅是錯誤號)可以告訴你更多關於錯誤的確切來源。或者,你可以打破行成兩行像這樣:

Dim VLoop As Range 
Set VLoop = Range("VericalLoop") 
VLoop.Activate 

如果設置VLOOP線引發錯誤,那麼問題是你的名字。如果第二行引發錯誤,那麼問題是什麼是活動的。

作爲一個額外的好處 - 一旦你調試這個錯誤你現在有一個有用的範圍變量允許你使用這樣的表達式VLoop.Rows.Count

相關問題