Excel 2013 VBA - 下一个循环突然停止工作

时间:2015-10-05 13:11:26

标签: excel vba excel-vba for-loop next

我几乎不好意思发布这个,但我傻眼了。 6个月前,我写了一个非常简单的For / Next循环来遍历列的单元格,如果满足某些条件,则执行一个动作。在过去的6个月里,它一直运作良好。今天,它放弃了工作。

Sub Button1_Click()
Dim x As Integer
Dim DateCell As String
Dim LastRow As Variant

LastRow = Worksheets("Paste Here").Range("A65536").End(xlUp).Row

On Error Resume Next

For x = 2 To LastRow

    DateCell = Worksheets("Paste Here").Range("A" & x)

    If Right(DateCell, 4) = "2015" Then
      Else
       Worksheets("Paste Here").Range("A" & x).Select
       Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Worksheets("Paste Here").Range("A" & x).Value = Worksheets("Paste Here").Range("A" & x - 1).Value
   End If

Next x

On Error GoTo 0

MsgBox ("Done! " & x & " rows analyzed.")
End Sub

当我单步执行“For”行时,它将x的值设置为零。当它到达“Next x”行时,它会将其增加到1,但之后不会循环...而是转到“On Error”并完成。我甚至尝试在循环之前设置x = 2,但同样的事情......它将增加到3然后退出循环。

有什么可以改变的?我甚至回到我的原始文件并尝试运行它,同样的事情。

1 个答案:

答案 0 :(得分:0)

马修走在正确的轨道上。因为这条线:    LastRow =工作表(“粘贴在这里”)。范围(“A65536”)。结束(xlUp)。行 如果在A65536上方的A列和A32768单元下面的单元格中有某些内容,那么VBA只会将x设置为0并且循环将不会执行。