В Excel VBA есть ли способ использовать StrComp для правильной сортировки дат (ДД-ММ-ГГГГ или ГГГГ-ММ-ДД вместо ММ-ДД-ГГГГ)? - PullRequest
0 голосов
/ 21 сентября 2019

Я пытался использовать StrComp () при написании алгоритма быстрой сортировки, который сортирует 4 критерия одновременно (например: фамилия, затем дата рождения, затем класс, затем идентификатор).Казалось, он работал нормально, пока я не попытался отсортировать даты.Похоже, они сортируются по месяцу, а затем по дню, затем по году.

Идея алгоритма состояла в том, чтобы сортировать данные любого базового типа.Если бы я использовал простое сравнение, такое как A> B, для строк, оно было бы чувствительным к регистру (например, сортировка «Ирландский» перед «идеей»).Тем не менее, этот вид сравнения отлично работал с числами и датами.

Поскольку StrComp предлагает возможность сравнения текста или двоичного сравнения, я подумал, что это сработает.Теперь он работает, как и ожидалось, для строк и чисел, но теперь даты сортируются по мм-дд-гггг, используя либо текстовое, либо двоичное сравнение.Мои даты в листах форматируются как дд / мм / гггг.

Есть ли способ обойти эту проблему?

[больше информации о быстрой сортировке:] 4 критерия, которые я хочу отсортироватьпередаются в функцию в качестве переменных.Одна вещь, о которой я думал, пытаясь передать другие 4 логические переменные, определяя, является ли критерий текстовым или нет.Если text = True, то я бы использовал StrComp, а если False, я бы использовал простое сравнение, подобное A> B.Проблема в том, что таким образом мне пришлось бы написать 16 вариантов сортировки комбинаций.

Не могли бы вы помочь мне с StrComp или с лучшими способами решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...