我有一个循环,遍历约15K行,检查数组中是否存在值,如果不存在则删除该行。我已经使用这个循环好几个月了。现在,每个循环大约需要2秒钟,我不知道为什么。我已经完成了通常的“将计算设置为手动”和“关闭屏幕更新”设置,但没有任何改善。
对不起,但是数据是机密的,所以我不能给你们源文件
static reloadAndSortItems() {
let array = [];
const items = Store.getStoredItems();
items.forEach(function (item) {
// getting the stored date --> back to date object
let episodeDate = Date.parse(item.episode);
let parsedEpisode = new Date(episodeDate);
array.push(parsedEpisode);
});
**// should not sorted at this point
console.log('not sorted', array);**
let tested = array.sort(function (a, b) {
return a - b
});
**// should be sorted array at this point
console.log('sorted', tested);**
}
有什么想法吗?
Update1:我关闭了Excel,然后重新打开并再次开始循环。它开始快速运行,但时间越来越慢。
Update2:我隔离了循环,并一直通过线路进行F8操作。停滞的行是“ Range(“ B”&CStr(lngCounter))。EntireRow.Delete”。实际上删除该行似乎需要很长时间。
答案 0 :(得分:0)
因此,我发现了另一种删除行的方法,速度更快。我使用了这里介绍的这种方法,效果很好。 https://stackoverflow.com/a/19241990/10344640
感谢Siddharth Rout发布此消息!