我目前正在使用Excel和我的代码。我有一个简单的for循环,该循环遍历一列,找到一个值,然后复制一个范围,并将其粘贴到新的范围中。
现在解决问题。我最初将其编程为Sheets.Range.Cut
,并将其更改为.Copy
,但是,代码仍在运行.Cut
方法。另外,需要注意的是,Debug.Print没有运行,但是.Cut
仍在运行。下面是摘录。
'reset date box
For i = 1 To 100
If Len(wsPMetrics.Range("U" & i)) > 0 Then
wsPMetrics.Range("U" & i & ":U" & (i + 1)).Copy Sheets("Performance Metrics").Range("U3")
wsPMetrics.Range("U" & i & ":U" & (i + 1)).Delete
Application.CutCopyMode = False
Debug.Print "Reseting date"
Exit For
End If
Next i
此外,我代码中的最后一个for循环已被完全跳过(新添加),并且Debug.Print也未执行。请参见下面的摘录。
'reset totals box
For i = 1 To 100
If Len(wsPMetrics.Range("W" & i)) > 0 Then
wsPMetrics.Range("W" & i & ":X" & (i + 3)).Cut Sheets("Performance Metrics").Range("W7")
Application.CutCopyMode = False
Debug.Print "Reseting balances"
Exit For
End If
Next i
我还将另一段代码从Range("P")
更改为Range("T")
,并且该代码正在执行P的原始范围。下面是该代码,请注意,它以前是P范围,但现在是范围T,但仍在旧范围上执行。
'draw box around day
wsPMetrics.Range("C3:T" & (i + 1)).Borders(xlEdgeLeft).LineStyle = xlContinuous
wsPMetrics.Range("C3:T" & (i + 1)).Borders(xlEdgeLeft).Weight = xlMedium
wsPMetrics.Range("C3:T" & (i + 1)).Borders(xlEdgeTop).LineStyle = xlContinuous
wsPMetrics.Range("C3:T" & (i + 1)).Borders(xlEdgeTop).Weight = xlMedium
' wsPMetrics.Range("C3:T" & (i + 1)).Borders(xlEdgeBottom).LineStyle = xlContinuous
' wsPMetrics.Range("C3:T" & (i + 1)).Borders(xlEdgeBottom).Weight = xlMedium
wsPMetrics.Range("C3:T" & (i + 1)).Borders(xlEdgeRight).LineStyle = xlContinuous
wsPMetrics.Range("C3:T" & (i + 1)).Borders(xlEdgeRight).Weight = xlMedium
wsPMetrics.Range("C" & (i + 1) & ":T" & (i + 1)).Borders(xlEdgeBottom).LineStyle = xlContinuous
wsPMetrics.Range("C" & (i + 1) & ":T" & (i + 1)).Borders(xlEdgeBottom).Weight = xlMedium
Debug.Print "Adding borders"
即使当我注释掉代码块时,它仍在运行相同的代码,几乎就像它已经存储了它一样,并且没有刷新到新代码。我已经用新代码编译了该项目,并且还关闭并打开了工作簿,以确保Application.ScreenUpdating = True
仍然是同一问题。我在此处附有屏幕截图,以查看上面的内容。
任何与上述内容有关的帮助/指导,将不胜感激!