У меня проблема с сбоем Excel 2010 (Windows XP говорит, что Excel «не отвечает»), когда я использую VBA для вычисления медианы массива, в случаях где средняя функция вычисляется до нуля. К сожалению, проблема воспроизводима только в контексте определенного набора кода (когда я пытаюсь написать упрощенную версию, для отладки проблема не возникает). Тем не менее, я думаю, кто-то может найти эту проблему интересной по следующим причинам.Crash (программа не отвечает), когда медиана оценивается до нуля (VBA)
Аварийный сигнал возникает при вызове application.worksheetfunction.median. VBA не может пройти этот вызов. Это не проблема последующего погружения на ноль.
Авария происходит даже в том случае, если массив очень мал (например, 8).
Я обнаружил, что эффективным решением для меня является добавление небольшой константы к каждому элементу массива, затем вычисление медианы, а затем сразу же вычитание константы из каждого значения массива. Кажется, это дает правильный ответ. Но меня беспокоит, что Excel требует этого решения.
Проблема также возникает с другой функцией рабочего листа, которая включает в себя сортировку: функцию процентиля.
Я не могу дублировать проблему. Можете ли вы опубликовать код, создающий проблему? –
Извините. URL-адрес был неверно отформатирован. Вот повторите попытку. http://www.bgsu.edu/departments/psych/faculty/randers/temp/median%20problem.xlsm – user1113568
@CharlesWilliams Спасибо за ваш интерес. Поскольку проблема связана с кодом VBA, взаимодействующим с электронной таблицей, вот URL, где вы можете загрузить весь файл xlsm: http: //www.bgsu.edu/department/psych/faculty/randers/temp/median% 20problem.xlsm (Я также попытаюсь выяснить, как использовать форматирование уценки, чтобы включить только код, здесь, в stackoverflow.) – user1113568