-1
我目前擁有下面的代碼。我需要將它從單元格S1運行到單元格S5000以及它們之間的所有內容。我所做的是爲每個單元格編寫1到5000的代碼,但是當我將代碼粘貼到工作表時,我收到了消息「編譯錯誤:過程過大」。是否有解決方法,以便我可以將每個單元格的代碼運行到5000甚至更多(如果需要)?將VBA代碼編譯爲長錯誤
謝謝你的幫助!
Sub CopyPriceOver()
Application.ScreenUpdating = False
If Range("S1") = 1 Then
Range("S1").Select
Range("S1").Select
Call ScheduleCopyPriceOver
ElseIf Range("S2") = 2 Then
Range("L2").Select
ActiveCell.FormulaR1C1 = "ready"
Range("L1").Select
Call ScheduleCopyPriceOver
ElseIf Range("S3") = 3 Then
Range("L3").Select
ActiveCell.FormulaR1C1 = "ready"
Range("L1").Select
Call ScheduleCopyPriceOver
.
.
.
.
ElseIf Range("S5000") = 5000 Then
Range("5000").Select
ActiveCell.FormulaR1C1 = "ready"
Range("L1").Select
Call ScheduleCopyPriceOver
Else
Call ScheduleCopyPriceOver
End If
使用循環?目前還不清楚你到底想要達到什麼目的。 – SJR
看循環1到5000,然後說'如果range(「s」&x).value = range(「s」&x).row然後range(「L」&x).value =「ready」並且如果L1等選擇是該過程使用激活的單元格,則將範圍作爲ScheduleCopyPriceOver中的參數。 –
「程序太大」意味着:程序非常大,VBA的解析器甚至不會採用它。編寫結構化代碼,程序不應該超過屏幕,最大限度。避免編寫無用的'.Select'和'.Activate'宏代碼,並關閉'ActiveCell'和'Selection';學會使用循環和適當的控制流程。瀏覽[VBA文檔](http://stackoverflow.com/documentation/vba/topics),瞭解它是如何完成的。 –