此代码不适用于循环。我无法弄清楚为什么。我知道它很简单但却无法看到它。电子表格名称是正确的。当我运行它时,它可以工作,但每次都必须调试。
Sub Button1_Click()
Dim X As Integer
Dim Y As Integer
Dim Z As Integer
Dim Count As Integer
X = 17
Y = 2
Z = 1
Count = 4560
Do While Z < Count
If Sheets("Ind").Range("A" & X) = 1 Then
Sheets("Returns").Range("A" & Y) = Sheets("Ind").Range("D" & X)
Sheets("Returns").Range("B" & Y) = "Buy"
Y = Y + 1
ElseIf Sheets("Ind").Range("C" & X) = 2 Then
Sheets("Returns").Range("A" & Y) = Sheets("Ind").Range("D" & X)
Sheets("Returns").Range("B" & Y) = "Sell"
Y = Y + 1
End If
X = X + 1
Z = Z + 1
Y = Y + 0
Loop
End Sub
答案 0 :(得分:0)
如果没有错误编号和描述(并且不知道它在哪里断线以及那时Z的值),很难确定问题的原因。
在任何情况下:你可以绕过错误(只要你发现它没有弄乱最终结果)。
免责声明:这不会解决您的问题,只会绕过它。请注意,因为这可能导致您的代码无法使用某些变量组合执行。建议您实际尝试修复代码,而不是在上面添加创可贴。
只需添加:
On Error GoTo Looper
在更新变量之前添加:
On Error GoTo 0
活套:
~~~~~~~~~~~~~~
您的代码包含上面提到的错误处理程序:
Sub Button1_Click()
Dim X As Integer
Dim Y As Integer
Dim Z As Integer
Dim Count As Integer
X = 17
Y = 2
Z = 1
Count = 4560
On Error GoTo Looper
Do While Z < Count
If Sheets("Ind").Range("A" & X) = 1 Then
Sheets("Returns").Range("A" & Y) = Sheets("Ind").Range("D" & X)
Sheets("Returns").Range("B" & Y) = "Buy"
Y = Y + 1
ElseIf Sheets("Ind").Range("C" & X) = 2 Then
Sheets("Returns").Range("A" & Y) = Sheets("Ind").Range("D" & X)
Sheets("Returns").Range("B" & Y) = "Sell"
Y = Y + 1
End If
On Error GoTo 0
Looper:
X = X + 1
Z = Z + 1
Y = Y + 0
Loop
End Sub