0

我新遇到这个错误。我不确定它会在哪里形成。我已经将这段代码运行了数千次,现在由于一些愚蠢的原因它失败了。我一直在查看这段代码,除了这仍然是 VBA 录制工具生成的相同代码之外,它已经几个月没有改变了。这是错误消息:错误信息

这是我的程序卡住的代码:

Sheets("Sheet1").Select
Cells(wHeaders, 1).Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Workbooks(CurrWB).Activate
Sheets(CurrSheet).Select
Sheets(CurrSheet).Activate

Cells(CurrRow, CurrCol).Select
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
    False, NoHTMLFormatting:=True     'THIS IS THE LINE WITH THE ERROR

ActiveSheet.Paste
Selection.EntireColumn.AutoFit

因为没有任何变化,而且代码生成器仍在创建同一行,所以我很困惑。帮助将是惊人的。也因为我知道你们都会问,是的,我的变量已定义。

Dim CurrSheet As Variant
Dim CurrWB As Variant
Dim CurrCol As Variant
Dim CurrRow As Variant

有最后一个 and 是通过的Suband 是Sub CoolProg(Optional wHeaders As Integer = 1)

更新: 我不确定为什么会这样,但是当我对调试器所在的行进行以下编辑时,错误似乎消失了。

Worksheets(CurrSheet).PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
    False ', NoHTMLFormatting:=True

我所做的只是注释掉 NoHTMLFormatting 部分,有人可以帮我理解为什么会这样,也许这个错误的根本原因是什么。我想确保我理解这一点,以便我可以修复我需要的代码。

更新 #2 .... 所以这个错误只有在我打开 Google Chrome 窗口并且我正在运行此代码时才会发生。我关闭了 Chrome,它起作用了。有一个类似的任务依赖于此,但我知道计算量很大,它在其中使用了这个子,我无法通过它。我检查了任务管理器,发现 chrome 位于顶部(PS 它 SUCKS 资源)所以我杀了它,现在它可以工作了。如果有人能解释发生了什么,那将是惊人的。

更新#3

我在有问题的行运行之前添加了 2 秒的暂停,这似乎解决了问题。我不确定为什么会这样,但似乎有更大的资源消耗,我的机器需要时间来释放一些资源,以便它能够工作。如果有人对为什么这是一个有效的解决方案有一些见解,那就太好了。代码现在看起来像:

Cells(CurrRow, CurrCol).Select

Application.Wait (Now + TimeValue("0:00:02")) 'Added this line for the delay
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
    False, NoHTMLFormatting:=True 'this is the problem code
4

0 回答 0