Как стать автором
Обновить

Технические лайфхаки для конкурсов

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.5K
Всего голосов 3: ↑2 и ↓1+3
Комментарии3

Комментарии 3

Set R = Application.Selection

Вы память не бережёте. Используя with, потратим меньше памяти.

Меняем все точки на запятые, именно они выступают десятичным знаком в Excel.

Это неверно. Десятичным знаком является десятичный знак. Его следует прочитать из локали как Application.DecimalSeparator.

Sub Macros3DoNumbers()

Если сделать эту обработку в отдельном столбце при помощи функций Excel, обработка пройдёт намного быстрее. Вообще, вы делаете макросами то, что быстрее и проще сделать в соседнем столбце.

Аномалии будут выровнены по левой стороне, а правильные цифры по правой

Если вам нужно оставить только числа, проще сделать отдельный столбец с проверкой, число или не число, а всё остальное заменить пустотой. Вообще, эта проверка на число или не число — сомнительное место в вашей методике. Люди умеют ошибаться, поэтому людям нельзя оставлять такие задачи.

Вы память не бережёте. Используя with, потратим меньше памяти.

Спасибо за совет, память и правда не бережём из-за незначительности этого параметра в сложившихся условиях, всё таки не в промышленных масштабах вычисления, но резонно, постараемся усовершенствовать.

Это неверно. Десятичным знаком является десятичный знак. Его следует прочитать из локали как Application.DecimalSeparator.

Резонно, можно добавить условный оператор для международного сообщества, но для ру-сегмента однозначно актуально и в действующей редакции.

Если сделать эту обработку в отдельном столбце при помощи функций Excel, обработка пройдёт намного быстрее. Вообще, вы делаете макросами то, что быстрее и проще сделать в соседнем столбце.

Про быстрее и проще очень спорно. Что проще, чередовать способы обработки макросами и формулами в соседних столбцах, либо просто по очереди нажать на 5 строчек в меню разработчика? Кому как удобней, но ваш метод тоже имеет место быть, если перевалим сильно за существующую 1000 участников конкурса, будем экономить память при обработке.

Если вам нужно оставить только числа, проще сделать отдельный столбец с проверкой, число или не число, а всё остальное заменить пустотой. Вообще, эта проверка на число или не число — сомнительное место в вашей методике. Люди умеют ошибаться, поэтому людям нельзя оставлять такие задачи.

Здесь речь о дополнительном контроле автоматики. Иногда (редко) могут проскочить ошибки. Например, если пользователь оставил прогноз 12,345.67, наши макросы превратят это в 12,345,67, что не станет числом без дополнительных обработок регулярными выражениями. Это можно было бы автоматизировать, но ввиду редкости таких ошибок оставили на откуп маркетологам. Всё равно дополнительный контроль для выявления новых ошибок будет полезен.

В любом случае, большое спасибо за такую конструктивную критику!

Про быстрее и проще очень спорно.

В оправдание скажу, что пришёл к этим выводам, обрабатывая столбцы по сто тысяч строк. Поэтому такие предостережения я вижу уже не разумом, а спиной.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории