一些背景资料:最快的方式
我有一个Excel加载执行17个个子程序,也想知道什么是最简单,最有效,最快捷的方法来
受宏观- 记录具体的变化,以及为什么它改变(或标记/高亮显示)提供的每一个犯错的单元格地址或者,将采取用户到特定的细胞在另一个工作表(在同一工作簿)可点击的链接
什么我迄今收集:
我在读了如何做到这一点的方法很少,最重要的是从here,here,here,最重要的是here。这些通过所有的潜艇运行,则倾倒UsedRange
到第二阵列的所有潜艇已经完成后之前建议的方法,如
- 转储
UsedRange
到一个数组。比较两个数组,并找出这种差异。 - 使用
worksheet_change
事件记录更改。 - Marktastic site的最后一个链接提供了最有说服力的方法,结合了前两种方法。但是,即使他每次检测到阵列的方法都会触发0.06秒,这看起来会增加很多开销。
我面对的几个具体问题包括:
- 与大型文件处理(15000+行,150列)
- 我的一些潜艇的制造不需要被改变例如只重新排列某些单元格中的值,而不会改变它们,否则不会改变它们
- 我的宏内置工作速度很快(< 1分钟),并且完成了它对我们大文件的扫描,所以我想这会消除使用
Worksheet_Change
事件,并在每个错误得到相应处理后立即写入单独的工作表。正如Mark所建议的,即使在一个方法中使用这两种方法似乎也会导致太多的滞后时间。 - 比较两个数组似乎对于像我一样大的文件来说也很慢,因为它意味着迭代通过15000(行)x 150(列)= 2,250,000个单元格
- 由于我正在制作通过宏观所有更改
worksheet_change
事件将不会触发。
所以,基本上消除了所有的我遇到的选项。我能想到的是唯一的其他选择,只是有一个数组,使用它会在代码执行时记录单元/位置和错误位置,然后在完成子缓冲后将整个数组转储到新工作表中,但这真的是我最好的选择吗?
因此,考虑到所有的事实和研究上述
现在,我的问题:
- 什么是在我的处境最有效的方式来记录的变化和显示什么(必要在我的宏完成后对文件进行了更改?无论我是否列出它,请随意分享一种您认为最适合这种情况的方法。
- 你能提供一个简单的示例代码来说明如何实现你的建议方法吗?
请缩小你的问题,包括你的示例代码和突出问题的一部分。最好的问候, –
我不明白这可能会被缩小。我给了一个非常详细的解释。除了链接中包含的代码外,我没有示例代码,但是如果它能让您开心,我会直接在帖子中包含它们。我只是在寻求如何处理这种情况的建议,我不一定需要任何人为我写代码。我知道这不是一个“*代码写入服务*”。我知道这些规则。 – CaffeinatedCoder
您的帖子更适合一些讨论论坛,而非SO。最好的问候, –