我正在通过删除和添加更多数据来测试我的编码,当我意识到我的编码出了问题时就是这样。最初,我开始使用#34; LEAVE"部分。
所以我尝试删除该部分的人,编码仍然有效。当我在该部分下添加一个人时,我意识到我的编码不起作用。当我将数据从3人改为4人时,它仍然停在第3个人身上。它没有继续循环检测第四人。
我测试并意识到这是我开始时的
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
有可能解决这个问题吗?
编辑:
由于Forward Ed的启蒙,我找到了问题的答案。谢谢。
我使用了以下代码
With Sheets("Cash")
Set FindRow = .Range("C:C").Find(What:="Name", LookIn:=xlValues)
End With
Dim FindRowNumber As Long
CashRowName = FindRow.Row
答案 0 :(得分:1)
redux-async-connect
这是您编辑的代码的一小部分。我很确定我的语法已关闭。要点是它避免在循环中间更改工作表。此外,重复使用select会降低代码速度,应该避免使用。