[英]How to fix a 'Next with no For' error sent in excel vba
我正在设置一个自动日历,当varDate()中的相应日期出现在日历中(Fday是日历日期)时,该日历应从varName()中绘制一个名称。 我收到令人困惑的循环中的“下一个没有For”错误。
目的是为name(varName)和date(varName)创建一个动态数组,在其中可以将名称绘制为具有相应日期的日历日。 我已经成功使用静态数组根据相应的日期将名称绘制到日历中,但是当我使用动态数组时,这给我带来了麻烦。
stRow = Row with calendar date
stCol = Column with calendar date
nameRow = Row containing persons name (below calendar date)
For i = LBound(varDate) To UBound(varDate)
If Cells(stRow + 1, stCol) = Empty Then
nameRow = stRow + 1
If Fday = varDate(i) Then
csheet.Cells(nameRow, stCol) = varName(i)
End If
Else
nameRow = nameRow + 1
If Fday = varDate(i + 1) Then
csheet.Cells(nameRow, stCol) = varName(i + 1)
End If
Next i
您应该缩进代码...这样可以避免出现此错误:
stRow = Row with calendar date
stCol = Column with calendar date
nameRow = Row containing persons name (below calendar date)
For i = LBound(varDate) To UBound(varDate)
If Cells(stRow + 1, stCol) = Empty Then
nameRow = stRow + 1
If Fday = varDate(i) Then
csheet.Cells(nameRow, stCol) = varName(i)
End If
Else
nameRow = nameRow + 1
If Fday = varDate(i + 1) Then
csheet.Cells(nameRow, stCol) = varName(i + 1)
End If 'you missed this one
End If
Next i
每当我遇到此错误时,这意味着我实际上在某处缺少“ End If”。 Excel认为Next语句在IF块内,因为它没有找到End If,但是在该IF块中没有For!
因此,这就是您得到错误的原因。
达米安(Damian)已找到丢失的“如果结束(End If)”应该放到哪里,然后将其放回去。他是对的,正确的缩进使得这些错误非常容易发现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.