Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel.delete&。clearcontents停止子_Excel_Vba - Fatal编程技术网

Excel.delete&。clearcontents停止子

Excel.delete&。clearcontents停止子,excel,vba,Excel,Vba,我有一个奇怪的问题:像这样的线条 rows("1:1000000").delete 及 停止执行并退出SUB。 没有错误消息,错误处理未获得任何错误号。 在调试模式下,行被执行,然后全部执行,接下来的事情就是没有宏运行,就像行的意思是“end sub”。 我在谷歌上搜索了一下,什么也没找到。 在其他计算机上尝试此宏,但结果相同。 没有受保护的单元格,没有电子表格和工作簿事件。 最后,我删除了文件中的所有模块和同一模块中的所有子模块,并运行了代码。然后关闭文件而不保存,然后重新打开,一切正常。

我有一个奇怪的问题:像这样的线条

rows("1:1000000").delete

停止执行并退出SUB。
没有错误消息,错误处理未获得任何错误号。
在调试模式下,行被执行,然后全部执行,接下来的事情就是没有宏运行,就像行的意思是“end sub”。
我在谷歌上搜索了一下,什么也没找到。
在其他计算机上尝试此宏,但结果相同。
没有受保护的单元格,没有电子表格和工作簿事件。
最后,我删除了文件中的所有模块和同一模块中的所有子模块,并运行了代码。然后关闭文件而不保存,然后重新打开,一切正常。
我猜,在Excel的胆量中,有些东西已经回到了正常状态。
知道会是什么吗?恐怕这个问题有一天会再次出现

更新:在另一个文件中运行另一个宏后,问题再次出现并消失

更新2:子系统的完整代码如下:

Sub GenRep()
Application.EnableEvents = True
Sheets("rep").Activate
On Error Resume Next
Rows("3:1000000").Delete 'this line breaks execution, no further lines are executed, no error code nor warning messages
If Err.Number <> 0 Then Debug.Print "Err: " & Err.Number
NLines% = Sheets("db").Range("a1000000").End(xlUp).Row
Rows("2:" & NLines).FillDown
End Sub
Sub-GenRep()
Application.EnableEvents=True
工作表(“代表”)。激活
出错时继续下一步
行(“3:1000000”)。删除“此行中断执行,不再执行其他行,没有错误代码或警告消息
如果错误号为0,则调试。打印“Err:”&错误号
NLines%=图纸(“db”)。范围(“a1000000”)。结束(xlUp)。行
行(“2:&NLines”)。向下填充
端接头
我对中断执行的行进行了注释

尝试:

Sheet1.Range(Rows(1), Rows(1000000)).EntireRow.Delete
Sheet1.Range(Rows(1), Rows(1000000)).ClearContents
尝试:


您能否尝试查找应用程序。EnableEvents未设置回默认值?在此之前/之后的一些代码是什么?正如其他人所说,usr Application.EnableEvents=true,。。。错误可能来自工作表选择更改或其他事件。。。搜索“结束”或“停止”一词的整个项目可能也会有所帮助。@RomcelGeluz。我检查了Aplication.EnableEvents,这是真的,我在子文档的开头插入了这一行,但没有任何效果:“Application.EnableEvents=True”这是整个工作簿中唯一的代码吗?删除出错时的
行。我能够在没有任何错误的情况下运行它,并使用
F8
执行
行()。删除
行,然后转到
If Err.Number…
行。另外,可能与问题无关,但不要激活
,而是删除该行,只需执行
工作表(“rep”).行(“3:1000000”).删除即可。另外,NLines%`是否不会抛出错误?对我来说确实如此,所以我添加了
Dim NLines,只要使用
NLines=Sheets…
。您可以尝试查找
应用程序。EnableEvents
没有设置回默认值吗?之前/之后的一些代码是什么?正如其他人所说,usr Application.EnableEvents=true,。。。错误可能来自工作表选择更改或其他事件。。。搜索“结束”或“停止”一词的整个项目可能也会有所帮助。@RomcelGeluz。我检查了Aplication.EnableEvents,这是真的,我在子文档的开头插入了这一行,但没有任何效果:“Application.EnableEvents=True”这是整个工作簿中唯一的代码吗?删除出错时的
行。我能够在没有任何错误的情况下运行它,并使用
F8
执行
行()。删除
行,然后转到
If Err.Number…
行。另外,可能与问题无关,但不要激活
,而是删除该行,只需执行
工作表(“rep”).行(“3:1000000”).删除即可。另外,
NLines%`是否不会抛出错误?对我来说是这样的,所以我添加了
Dim NLines,只要长
就可以了,只需使用
NLines=Sheets…
。运气不好,运行时错误424:object required分别尝试了两行,结果相同代码看起来很好,而不是
Sheet1。
尝试使用
工作表(“您的工作表名称”)。
创建了新工作簿,输入此代码:
Sub test()ActiveSheet.Range(行(1),行(1000000)).EntireRow.Delete ActiveSheet.Range(行(1),行(1000000)).ClearContents Debug.Print Time End Sub
无错误,无警告,仅当前时间从未打印。它在2号线安静地退出。如果我对第2行进行注释,它将在第3行退出。句号。所以你用
str+g
激活即时窗口,并用
f8
运行代码?因此,如果我做同样的操作,它对我来说很好,时间也会被打印出来。不幸的是,在我的情况下不是这样的(这就是我试图解决的问题,没有运气,运行时错误424:object required分别尝试了两行,得到了相同的结果。我认为代码看起来很好,而不是
Sheet1。
尝试使用
工作表(“YourWorksheetName”)创建新工作簿,输入以下代码:
Sub test()ActiveSheet.Range(第(1)行,第(1000000)行)。EntireRow.Delete ActiveSheet.Range(第(1)行,第(1000000)行).ClearContents Debug.Print Time End Sub
没有错误,没有警告,只有当前时间永远不会被打印。它在第2行悄悄退出。如果我对第2行进行注释,它在第3行退出。句点。因此,您可以使用
str+g
激活即时窗口,并使用
f8
运行代码。因此,如果我这样做,它就可以正常工作对我来说,时间会被打印出来。不幸的是,我的情况不是这样(这就是我想要弄明白的)
Sheet1.Range(Rows(1), Rows(1000000)).EntireRow.Delete
Sheet1.Range(Rows(1), Rows(1000000)).ClearContents