Excel在修改和编译代码后执行原始代码

时间:2018-08-28 14:45:35

标签: excel vba excel-vba

我目前正在使用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仍然是同一问题。我在此处附有屏幕截图,以查看上面的内容。 Example

任何与上述内容有关的帮助/指导,将不胜感激!

0 个答案:

没有答案