0
我幾乎不好意思發佈這個,但我傻眼了。 6個月前,我寫了一個非常簡單的For/Next Loop循環遍歷列的單元格,如果滿足某些條件,則執行一個操作。它在過去6個月裏工作完美無瑕。今天,它停止工作。Excel 2013 VBA - 對於下一個循環突然停止工作
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與零值。當它到達「下一個x」行時,它會將其增加到1,但不會循環...而是轉到「On Error」並結束。我甚至在循環之前嘗試設置x = 2,但同樣的事情....它會增加到3,然後退出循環。
什麼可以改變?我甚至回到我的原始文件,並嘗試運行它,同樣的事情。
「LastRow」的價值是什麼(爲什麼你使用'Variant'而不是'Long'?)?此外,我建議你註釋'On Error Resume Next'行並運行代碼。 – Rory
當你在不改變x的值的情況下執行時,'LastRow'中的值是多少? – MiguelH
聽起來可能聽起來很愚蠢 - 但實際上'Paste Here'表格的列A中有數據嗎? –