我在模块中获得了这段代码,旨在以三种方式之一将一行数据写入输出表。 idea 用于计算每层可堆叠的项目数,然后(在CheckRTs
中)将其写入输出。如果类别是" N / A"或" SELECT"它应该跳过输出部分。
实际发生的是,无论GoTo NoStack
的价值如何,它似乎每次运行都会解析sCategory
行。
谁能看到我出错的地方?
If sCategory = "Plates" Then
If dWidth > wsSorter.Cells(iSrcLine, 19).Value / 2 Then iLayerQty = 1
If dWidth <= wsSorter.Cells(iSrcLine, 19).Value / 2 Then iLayerQty = Int(wsSorter.Cells(iSrcLine, 19).Value / dWidth)
Else If sCategory = "N/A" Or sCategory = "SELECT" Then
GoTo NoStack
Else
If dWidth > wsSorter.Cells(iSrcLine, 19).Value / 2 Then iLayerQty = 1
If dWidth <= wsSorter.Cells(iSrcLine, 19).Value Then iLayerQty = Int((wsSorter.Cells(iSrcLine, 19).Value - dStanchion) / dWidth)
End If
Do
CheckRTs:
If IsEmpty(wsRTTrack.Cells(iRTCount, 1)) = False Then
WriteLine
ElseIf IsEmpty(wsRTTrack.Cells(iRTCount, 1)) = True Then
MakeNewRT
GoTo CheckRTs
End If
Loop While iQty > 0
NoStack:
答案 0 :(得分:1)
尝试删除Else
和If
之间的空格以生成ElseIf
。如果您像在那里那样执行此操作,则必须在If
内使用Else
开始新的End
。
嵌套如果最容易调试,在这个例子中Select Case
应该稍微简化一下,所以你可以考虑使用它。