Vba Excel宏在Excel 2016中的速度有时非常慢,但在Excel 2010中则不然(CPU使用率高)

Vba Excel宏在Excel 2016中的速度有时非常慢,但在Excel 2010中则不然(CPU使用率高),vba,excel,Vba,Excel,我有一个用户(和他的同事)的宏在Excel 2010中工作得非常完美,但在Excel 2016中却突然不能很好地工作,该宏有时会导致非常高的CPU使用率(CPU从12%增加到66+),这使得它的速度非常慢,而且没有响应 最重要的是,它一开始工作正常,但当他们运行宏一次或两次,或者在不同的电子表格中完成了x个工作量时,问题就会出现 我不能透露代码,因为它是敏感数据,而且我是外部支持服务的一部分,但我可以告诉您,他们确实保护/取消保护文档,并且正在进行SQL事务 问题发生在(取决于代码的执行方式)文

我有一个用户(和他的同事)的宏在Excel 2010中工作得非常完美,但在Excel 2016中却突然不能很好地工作,该宏有时会导致非常高的CPU使用率(CPU从12%增加到66+),这使得它的速度非常慢,而且没有响应

最重要的是,它一开始工作正常,但当他们运行宏一次或两次,或者在不同的电子表格中完成了x个工作量时,问题就会出现

我不能透露代码,因为它是敏感数据,而且我是外部支持服务的一部分,但我可以告诉您,他们确实保护/取消保护文档,并且正在进行SQL事务

问题发生在(取决于代码的执行方式)文档保护被删除之后,-似乎是当一个输入框显示Excel变成垃圾时。可以输入字母,但它们只会在x秒后显示

众所周知,某些方法在2016年的效果不如2010年,或者2016年的表现通常不如2010年


我们是否需要更改代码,或者是否可以通过Excel设置执行某些操作?

由于新版本使用的新密码哈希算法,Excel 2013和2016中的保护和取消保护方法比2010年及之前慢了2000多倍(!)。省略密码完全可以解决这个问题,但并不总是一个好的解决方案


或者,确保在打开文件时(第一次需要时),使用UserInterfaceOnly设置为true来保护工作表,并从那时起远离保护/取消保护。

是更改代码,编写新代码-好运从12%到66%?听起来好像有一个或多个查询正在运行..?非常了解jkp。这是来自你的一次速度测试,还是你有来源?我发现Excel 2010似乎对很多事情都是最好的,而且新版本与我认为的主流任务很难相处。这在你的网站上吗?这是用客户端文件进行的速度测试。我不会说2010在很多方面都是“最好的”,每个版本的Excel都有其优缺点。