0
1つのブックから別のブックにデータをコピーする際に非常に奇妙な問題が発生しました。 コードスニペット:初めて会った第二のif文の条件まで、期待通りにVBAネストされたforループ、1つのループのみが進みます
For iRow = 7 To iMaxCheckRows
strPartNum = thisSheet.Cells(7, 1).Value
If strPartNum <> "" Then
For iSourceRow = 4 To iMaxRows
If sourceBook.Worksheets(1).Cells(iSourceRow, 2).Value = strPartNum Then
thisSheet.Cells(iRow, 4).Value = sourceBook.Worksheets(1).Cells(iSourceRow, 4).Value 'here it gets stuck
Exit For
End If
Next iSourceRow
End If
Next iRow
すべてが動作します。値は正しくコピーされますが、それ以降はこの行に固執します。 iRowはインクリメントされますが、iSourceRowはインクリメントされず、iRowがiMaxCheckRowsに達するまで同じ値がコピーされます。 シングルステップでデバッグしようとしましたが、iRowをインクリメントして同じ行にとどまります。
これまでにこのような動作は見たことがありません。誰かがここで何が起こっているのか?
'strPartNum = thisSheet.Cells(7、1).Value'は' strPartNum = thisSheet.Cells(iRow、1).Value'にするべきではありませんか? –
'sourceBook'とは何ですか?それはどのように参照されますか?開かれていますか? – Vityata
はい、strPartNum = thisSheet.Cells(7、1)。値は本当にstrPartNum = thisSheet.Cells(iRow、1).Valueにする必要があります。 – MarcMan