0 / 0 / 0
Регистрация: 26.09.2016
Сообщений: 163
|
|||||||||||
1 | |||||||||||
Вставка данных из словаря по условию02.07.2018, 16:42. Показов 2012. Ответов 11
Метки нет (Все метки)
Прошу помощи, так как код выдает ошибку и я не понимаю что надо исправить. По задумке в словарь попадают ключи и элементы, которые если ключ совпадают, добавляются через запятую. Потом эти склеиные элементы надо выгрузить в файл по совпадению ключа и данных из столбика А. Написала код:
0
|
02.07.2018, 16:42 | |
Ответы с готовыми решениями:
11
Вставка данных по условию Вставка рисунков по условию Вставка таблицы по условию Вставка строк по условию |
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
02.07.2018, 16:49 | 2 |
Makroshka, файл-пример приложите
0
|
0 / 0 / 0
Регистрация: 26.09.2016
Сообщений: 163
|
|
02.07.2018, 17:19 [ТС] | 3 |
Прикладываю файл пример. В реальном документе 200 тыс+ строк. Поэтому скорость тоже имеет немалое значение.
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|||||||||||
02.07.2018, 19:23 | 4 | ||||||||||
Чуть недокрутили... но принципиально.
А вообще под это дело давно есть UDF, например я такую написал и применяю:
Вот нашёл: Поиск и сохранение данных на другой лист разделенных "; "
0
|
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
||||||
02.07.2018, 19:29 | 5 | |||||
Поэтому не надо обращаться в цикле к ячейкам, ведь все данные уже в массиве:
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
02.07.2018, 19:37 | 6 |
Да, на 200 тыс. строк конечно такую UDF применять нет смысла, долго... Но можно например написать массивную - только заносить её будет трудно
P.S. не обратил внимания что там ячейки перебираются Но если там 200000 строк, то вся usedrange может не поместиться в память (вдруг там правее ещё есть данные), берите только нужные столбцы. И ещё - не всегда usedrange начинается с первой строки листа, и тут тоже в таком коде может ожидать подвох
0
|
0 / 0 / 0
Регистрация: 26.09.2016
Сообщений: 163
|
||||||
03.07.2018, 11:21 [ТС] | 7 | |||||
Казанский, спасибо, использовала ваш вариант. Не могли бы вы пояснить откуда берутся переменные Mid$ и CStr. Они нигде не назначаются, значит вписаны непосредственно в алгоритм словаря. Где об этом можно поподробнее почитать, а то я этой инфы нигде не находила.
Hugo121, я прислала конечную таблицу, поэтому использование только нужных столбцов не критично. Но на будущее хотелось бы для себя прояснить вопрос: если только определенные столбца, то я завожу такую строку кода:
0
|
Заблокирован
|
|
03.07.2018, 12:02 | 8 |
Makroshka, ВЫ без малого три года в VBA - пора бы основы языка освоить.
https://msdn.microsoft.com/ru-... d-function https://msdn.microsoft.com/ru-... -functions
0
|
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
03.07.2018, 12:09 | 9 |
Makroshka, Cstr в вашем коде было. Это функция, которая возвращает текстовое представление аргумента. Для словаря это необязательно, но если вдруг в разных строках NUM будет представлен как число 7 и текст "7", то с этой функцией это будет один и тот же ключ, а без нее - разные ключи.
Mid - функция, которая возвращает часть строки. Поставьте курсор в слово Mid и нажмите F1 - это вообще универсальный метод
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
03.07.2018, 12:10 | 10 |
неправильно.
В массив можно (я говорю про "легко") взять только смежные столбцы, можете допустить пару/несколько лишних, но нет никакого смысла брать возможно десятки лишних правее. Если нужные например второй и двадцать второй, то я обычно делаю два отдельных массива. Или можно делать массив массивов, что в общем только усложнит понимание кода
0
|
Hugo121
|
03.07.2018, 12:12
#11
|
Не по теме: Я думал только у меня глючит - оказалось форум подглюкивает :)
0
|
0 / 0 / 0
Регистрация: 26.09.2016
Сообщений: 163
|
|
03.07.2018, 12:54 [ТС] | 12 |
Спасибо, все поняла)
0
|
03.07.2018, 12:54 | |
03.07.2018, 12:54 | |
Помогаю со студенческими работами здесь
12
Вставка R1C1 формулы по условию Вставка новых столбцов по условию Вставка строк по условию из значений по умолчанию Из словаря создается объект, именами атрибутов которого будут ключи словаря Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |