0
データを削除して追加することでコードをテストしていました。最初は、「LEAVE」セクションの下で3人でコーディングを開始しました。別のシートを選択した後、3行目で停止したのはなぜですか?
私はセクションから人を削除しようとしましたが、コーディングはまだ機能しています。そのセクションの下に人をもう一人追加したとき、コーディングがうまくいかないことに気付きました。データを3人から4人に変更したところ、まだ3人目で停止していました。それは第4人を検出するためのループを継続しませんでした。
私がテストしたと私は
以降Sheets("Cash").Select
を始めたとき、それが機能しなかったことに気づきました。
これがなければ、ループはまだ機能し、第4人を検出できます。
Do While Cells(ShiftRowName, 1) <> ""
Set ShiftName = Sheets("Shift Roster").Cells(ShiftRowName, ShiftColName)
If ShiftName = "" Or IsEmpty(ShiftName) Then
Exit Do
Else
'When the following coding was added,
'It stopped detecting at the 3rd person.
Sheets("Cash").Select
Range("C1").Select
Cells.Find("Name").Activate
r2 = ActiveCell.Row
CashRowName = r2 + 1
Do While Cells(CashRowName, 1) <> ""
Set CashName = Sheets("Cash").Cells(CashRowName, CashColName)
If CashName = "" Or IsEmpty(CashName) Then
Exit Do
Else
MsgBox CashName
MsgBox ShiftName
End If
CashRowName = CashRowName + 1
Loop
End If
ShiftRowName = ShiftRowName + 1
Loop
これを解決する方法はありますか?
EDIT:
があるためフォワードエドの啓発のため、私は私の問題への答えを見つけました。ありがとうございました。
私が編集したコードの小さなスニペットで次のコード
With Sheets("Cash")
Set FindRow = .Range("C:C").Find(What:="Name", LookIn:=xlValues)
End With
Dim FindRowNumber As Long
CashRowName = FindRow.Row
"キャッシュ"シート上でやっていることをやった後、あなたのシートを持ってシートに戻ってくる必要があります。あるいは実際にそれを選択せずに現金シートを操作するほうがよいでしょう。 –
'Do While Cells(CashRowName、1)'ループが "Shift Roster"シートセルで動作するようになっていますか? – user3598756
はい、単なるシート(「現金」)を追加するだけです – stupidgal