gpt4 book ai didi

vba - 如何修复 "not responding"?

转载 作者:行者123 更新时间:2023-12-04 21:08:08 26 4
gpt4 key购买 nike

如何修复 Excel VBA 中的 Not Responding 错误?

我的代码是完美的,我没有收到任何错误,但在我运行它之后,我会看到 Excel VBA 的NOT RESPONDING 顶部并且 Excel 不再响应。

我正在编写 vba 代码来查找两个工作表之间的匹配数字:Sheet1 包含 5000 个数字,Sheet2 包含 4500 个数字。当我运行它时,我的代码运行了 10 秒,然后 excel 在我身上卡住并且没有响应消息出现在屏幕顶部。

当我只比较两张纸之间的 100 个数字时,它工作正常并且不会出现不响应消息。只有当我比较 10000 个数字或更多数字时才会出现这种情况。

当我只比较 100 个数字时,这段代码再次完美运行。但是当我尝试在两张纸之间做更大的数字时,出现“无响应”并且 excel 卡住。这是我的代码我确实尝试了 screenupdate 或其他,但没有任何帮助。 如果有人帮助我,我将不胜感激。

     Dim Sheet1rows As Long, Sheet2rows As Long, a as long, j as long
j = 1
a = 1
Sheet1rows = Sheets("Sheet1").UsedRange.Rows.Count + 1
Sheet2rows = Sheets("Sheet2").UsedRange.Rows.Count + 1

For i = a To Sheet1rows
For ii = a To Sheet2rows

'this one is copying between to sheets

If Sheets("Sheet1").Cells(i, 1) = Sheets("Sheet2").Cells(ii, 1) Then
Sheets("Sheet3").Range("A" & j) = Sheets("Sheet1").Cells(i, 1)
j = j + 1
next ii
next i

最佳答案

您已经获得了一些非常出色的答案,可以让您的代码变得更好。我只想补充一件事。

如果你只是想让程序不卡住,那么添加

DoEvents

在每个循环内各占一行。

我还建议添加

Application.StatusBar = "Updating" & (i)

这样您至少可以看到它是否正常工作。

关于vba - 如何修复 "not responding"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24621976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com