0
我正在通過刪除和添加更多數據來測試我的編碼,那是當我意識到編碼出現問題時。最初,我在「LEAVE」部分下開始了3人的編碼。爲什麼我在選擇另一張表格後停在第三行
因此,我試圖刪除該部分的人,編碼仍然有效。當時我在該部分添加了一個人,然後我意識到我的編碼不起作用。當我將數據從3人更改爲4人時,仍然停留在第三人。它沒有繼續循環來檢測第4人。
我測試,並意識到這是當我開始用
Sheets("Cash").Select
起,它沒有工作。
沒有這個,循環仍然有效,它可以檢測到第四個人。
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
任何可能解決這個問題?
編輯:
因爲正向埃德的啓發,我找到了答案,我的問題。謝謝。
我用下面的代碼
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
是的,只需添加表格(「Cash」)即可 – stupidgal