下のコードで選択条件を満たすセルが1つしかないときに、オーバーフローエラーを排除するためにコードを修正する手助けをしてもらえますか?セルA4および下には製品の説明が含まれ、セルB4には数量が含まれています。その目的は、A4から列Lへの説明をB4の数量に対応する回数だけコピーし、列Aの製品説明と同じ回数だけこのプロセスを繰り返すことです。これは、複数の説明がある場合は完全に機能します。コピーされますが、A5が空の場合はオーバーフローエラーになります。以下のコードで呼び出されている3つのマクロは、すべて無害であり、実際のコードが実行される前にこのワークシートの保護を解除してから、範囲をフォーマットした後にワークシートを再保護するだけです。 私はExcelの公式にはうんざりですが、コーディングが弱いので、答えは私のコードの単純な欠陥だと思っています。事前に多くの感謝。Excelランタイムエラー '6'の原因は何ですか?
Private Sub Create_NumberList()
Application.ScreenUpdating = False
Sheets("Selections").Select
Call UnprotectSelections
Dim lRow As Long
Dim x, MyCount As Integer
lRow = Range("A4:B4").End(xlDown).Row
For Each cell In Range("A4:A" & lRow)
cell.Copy
MyCount = cell.Offset(0, 8)
Do
x = x + 1
Range("L" & x).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
MyCount = MyCount - 1
Loop Until MyCount = 0
Next cell
Application.CutCopyMode = False
Call ProtectSelections
Call ReformatSelections
End Sub
Scottは、完璧に動作するだけでなく、VBAプロセスを大幅にスピードアップしました。また、私が素晴らしいソリューションを提供したのは今回が2回目であり、十分に感謝することはできません。 –
@ user1483720 - これは4年前のようでした。素晴らしい!また、あなたのためにうまくいく答えを受け入れるか、他の人が将来的に利益を得ることができるように有用であることを、SOのベストプラクティスにします。 –
申し訳ありません - 私はそれを逃した。あなたが普通のユーザーでないなら、それは直感的ではありません。 –