Excel VBA停止,没有错误消息

时间:2013-06-12 19:18:13

标签: excel-vba vba excel

我有一些代码在没有明显原因的情况下停止执行而且没有生成错误。这可能是记忆问题吗?它正在运行的工作表有大约1600行,有大量的格式和条件格式,并且代码在插入行后停止。以下是停止的代码段:

With wsBudget
    TotalColumn = .Range("TotalColumn").Column
    FormulaColumn = .Range("FormulaColumn").Column

    If .Cells(lRow, 1).Interior.Color <> 14408946 Then  'OK to insert
        cell.EntireRow.Copy
        cell.Resize(RowCount, 1).EntireRow.Insert  'It stops after stepping into this line
        .Cells(cell.Row - RowCount, 1).EntireRow.ClearContents
        .Cells(cell.Row - RowCount - 1, FormulaColumn).Resize(RowCount + 1, 1).FillDown
        .Cells(cell.Row - RowCount - 1, TotalColumn).Resize(RowCount + 1, 1).FillDown
        .Cells(cell.Row - RowCount - 1, 1).Resize(RowCount, 1).Interior.Color = RGB(255, 255, 255) 'OK to insert or delete
    Else
        MsgBox "You must select a cell within a table before inserting a row."
        Exit Sub
    End If

End With

3 个答案:

答案 0 :(得分:0)

我对wholerow.insert有同样的问题。在编辑我的代码或注释行之后,我的第一次执行只会出现问题(没有更改任何有意义的内容)。我的原始工作簿是一个.xltm文件,但保存为常规.xlsm由于某种原因解决了这个问题。

答案 1 :(得分:0)

好的,现在我想我可能有一个答案(或者至少是一种解决方法)。如上所述,我认为它可能与剪贴板有关。所以在复制指令之前,我插入了

Application.CutCopyMode = False

现在问题已经消失了。

答案 2 :(得分:0)

我90%确定这是Excel中的错误。我在多个宏上遇到了问题,即使所有其他因素都不变,它也是不一致的;重新运行通常只是起作用。在长期运行的宏中它也更有可能。

它不是 name table latest_table Date 1 george table1 t459 2017-08-24 2 john table1 thi7 2017-07-23 3 mary table1 gdr99 2017-07-22 ,因为它位于消息框之后。这不是缺少错误处理,因为如果存在未处理的错误,VBA应该中断(并且确实)。错误也是可重现的。

我找到的最佳工作是在“主要”工作表上输出开始和结束时间。如果用户没有得到结束时间,则假定宏过早停止。