私はこのコードをモジュールに入れました。これは、出力シートに3つの方法のいずれかでデータ行を書き込むことを目的としています。 アイディアは、レイヤーごとに積み重ねることができるアイテムの数を計算し、次にそれを出力に書き出します(CheckRTs
)。カテゴリが「該当なし」または「選択」の場合は、出力セクションをスキップする必要があります。期待通りにネストされたIF句がありません
実際に起こっていることは、sCategory
の値に関係なく、実行ごとにGoTo NoStack
行を解析しているようです。
誰かが間違っているのを誰でも見ることができますか?
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:
https://msdn.microsoft.com/en-us/library/752y8abs.aspx: 'Else If'は' ElseIf'でなければなりません。 –
良いキャッチ、歓声! –