将VBA代码编译为Long

时间:2017-03-31 14:37:35

标签: vba excel-vba excel

我目前有以下代码。我需要将它从单元格S1运行到单元格S5000以及介于两者之间的所有内容。我所做的是为每个单元格编写1到5000的代码,但是当我将代码粘贴到工作表中时,我得到了消息“编译错误:过程太大”。是否有解决方法,以便我可以将每个单元格的代码运行到5000甚至更多(如果需要)?

感谢您的帮助!

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

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容。但是,我不知道'ScheduleCopyPriceOver'是什么,所以取消注释该行。并且您的第一个示例使用了列'S',但之后您使用了列'L'。他们都应该是'L'????

Dim lRow    As Long
Dim ws      As Worksheet

Set ws = ThisWorkbook.Sheets("Sheet5")
Application.ScreenUpdating = False

For lRow = 1 To 5000
    If ws.Cells(lRow, 12) = lRow Then
        ws.Cells(lRow, 12).Select
        'Call ScheduleCopyPriceOver
    End If
Next lRow