当我使用 VBA 计算数组的中值时,Excel 2010 崩溃(Windows XP 说 Excel“没有响应”)出现问题,在中值函数计算为零的情况下。不幸的是,该问题仅在特定代码集的上下文中是可重现的(当我尝试编写简化版本以进行调试时,该问题不会发生)。尽管如此,我认为由于以下原因,有人会发现这个问题很有趣。
调用 application.worksheetfunction.median 时发生崩溃。VBA 无法通过该调用。这不是随后跳水为零的问题。
即使数组非常小(例如,8)也会发生崩溃。
我发现一个有效的解决方法是为每个数组项添加一个小常数,然后计算中位数,然后立即从每个数组值中减去该常数。这似乎产生了一个正确的答案。但令我担心的是 Excel 需要这种解决方法。
另一个涉及排序的工作表函数也会出现此问题:百分位数函数。