|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 22
|
|
Копирование массива данных со страницы на страницу02.10.2015, 15:13. Показов 4829. Ответов 38
Метки нет (Все метки)
День добрый.
Впервые столкнулся с необходимостью создания макроса на Excel, нужна помощь специалистов ![]() Есть книга Excel, в ней 2 листа с таблицами: Таблица 1 (Лист 1) Таблица 2 (Лист 2) Из первой таблицы во вторую необходимо перенести, например, все данные из столбцов "ФИО" и "Подразделение". При этом количество строк будет варьироваться. То есть нужно, чтобы копировались данные не строго с А2 по А10, а, как бы, с А2 по Абесконечность. Это вообще возможно?
0
|
|
| 02.10.2015, 15:13 | |
|
Ответы с готовыми решениями:
38
Передача данных со страницы на страницу Передача данных со страницы на другую страницу Копирование данных с отображаемой web-страницы |
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 08.10.2015, 13:42 | |
|
Что именно не понятно? Какая строка? Всё комментировать некогда.
Алгоритм вкратце уже описал. d2 - это словарь с фио и должностями, они выгружаются первыми на итоговый лист, затем выгруженные фио и то, что там ранее уже занесено вручную в шапки листа используется для составления ключа.
1
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 22
|
|
| 21.10.2015, 15:53 [ТС] | |
|
Как я понимаю, распределение значений параметров идет путем сравнения наименований параметров на первой странице с заголовками таблицы на второй странице. А если заголовки будут иметь совсем другие имена? То есть нужно будет указать, что класть значение в зависимости от наименования параметра нужно будет в конкретную ячейку (например в (С;х), причем х начиная с 3).
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 21.10.2015, 16:24 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 22
|
|
| 21.10.2015, 17:01 [ТС] | |
|
А можно попросить сварганить пример макроса хотя бы на основе одного параметра? Например, во вложенном файле отправить значение параметра "Тестирования 0.55". Соответственно, должно быть что-то вроде "если наименование параметра начинается на "cmi.objectives.0", то обращаемся к "Колонка0" во второй таблице, а если заканчивается на ".id", то кладем значение в "Ячейка0" упомянутой ранее колонки".
Пример2.xlsx
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 21.10.2015, 17:21 | |
|
Если будет время вечером в промежутке между интернами и лондонградом - посмотрю
![]() Ну или может завтра днём, сейчас уже работа заканчивается, нужно срочно подбивать хвосты... Я глянул мельком - нужно туда ещё один словарь добавлять, с соответствием Колонка0/cmi.objectives.0 и т.д. все пары. Так код будет прозрачнее.
1
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 22
|
|
| 21.10.2015, 17:32 [ТС] | |
|
Подожду, конечно, гнать не имею права
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 21.10.2015, 20:38 | |
|
Вроде нет сегодня интернов...
![]() Всё остальное как говорил - добавил ещё один словарь, всё прозрачно.
1
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 22
|
|
| 22.10.2015, 12:25 [ТС] | |
|
Словарь вижу, но он, как я понимаю, не задействован? Нигде же не идет сравнение заголовков со значениями словаря.
Я с VBA в жизни не работал, почти все функции и операторы приходится гуглить, чтобы разобраться, поэтому прошу строго не судить, но очень понадобилось по работе.
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 22.10.2015, 12:39 | |
|
Если бы не использовал - так бы и написал в комментарии
![]() В этот новый словарь заносятся пары вариантов этих заголовков, далее по одному из названий из словаря извлекается второе, никакого сравнения там не нужно, т.к. если вдруг пары не будет - будет извлечено пустое значение, что просто в итоге даст ключ, которого нет в другом словаре, и в ячейку ничего не будет записано. В перспективе для удобства работы эти пары можно брать откуда-то из другого источника - с листа или например из текстового файла, тогда при изменениях не нужно будет лезть в код, достаточно поменять заготовленный список.
1
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 22
|
|
| 22.10.2015, 12:53 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 22
|
||||||
| 22.10.2015, 13:13 [ТС] | ||||||
|
Ах да, и зачем в объявлении переменных символы & и $
0
|
||||||
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 22.10.2015, 13:26 | |
|
Архивы рабочий касперский не дозволяет качать.
Символы & и $ - это короткое обозначение типа переменной - Long и String
1
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 22
|
|
| 22.10.2015, 14:23 [ТС] | |
|
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
||||||
| 22.10.2015, 15:45 | ||||||
|
Так это мой код как был... Только вот With d ... End With лишнее - точно я там так написал? Помню писал... Тогда внутри d можно удалить, иначе в with нет смысла
![]() А в чём вопрос, где непонятно? Словарь d используется тут:
1
|
||||||
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 22
|
||
| 22.10.2015, 15:58 [ТС] | ||
|
_____ Строка .[a3].Resize еще более-менее понятна... Ну точнее, я понимаю ее так: начиная с а3 мы задаем размер таблицы/матрицы, в которую будут помещены ФИО/Подразделения, которые хранятся в d2, ну и "вываливаем их туда, только зачем мы ее траспонируем? А вот далее, начиная с For i = 3 To 2 + d2.Count, непонятно ничего... Зачем эти бесконечные iiiiiii, что плюсуем, что минусуем...
0
|
||
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 22.10.2015, 16:41 | |
|
1.Нет, всё не нужно удалять
![]() Если пишем with что-то, то это что-то уже внутри этого with упоминать излишне. А тут упомянуто. Т.е. нужно удалить или 2 строки With d ... End With, или 7 d внутри. 2. Транспонируем затем, что массив из массивов Array(d2.keys, d2.items) является горизонтальным, а нам нужно их поставить в столбцы. 3, Далее вся эта бодяга для того, чтоб пройтись циклом по фамилиям и вашей хитрой шапке: For i = 3 To 2 + d2.Count'по фамилиям For ii = 3 To 12 Step 3'по первой строке шапки с шагом 3 For iii = 1 To 3'по второй строке в итоге получаем ключ из фамилии и значений шапки.
1
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 22
|
|
| 27.10.2016, 17:19 [ТС] | |
|
Подскажите, пожалуйста, с чего вылезает "Run-time error 13" во вложенном файле?
Если удалить с первой страницы значения ниже Коршуновой, то макрос срабатывает. Как только возвращаю Какулу (может, это из-за ее фамилии? ), снова вылезает "13"...
0
|
|
|
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
|
|
| 27.10.2016, 20:27 | |
|
В ячейках от C601 до C642 длина содержимого более 255 знаков (как раз на этой Какуле, как Вы её вычислили?
), поэтому выгрузка через Application.Transpose() и глючит.Но эту глючную строку в коде можете вообще убрать, т.к. ниже всё тоже самое выгружается уже циклом, где нет проблемы с такими строками, ибо тогда не используется Application.Transpose() Эту строку в коде точно я оставил? Ну тогда извините
1
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 22
|
|
| 28.10.2016, 10:38 [ТС] | |
|
Спасибо, дело было действительно в этой строке.
0
|
|
| 28.10.2016, 10:38 | |
|
Копирование данных из DataTable, создание новой страницы в Excel Передача данных из одной страницы WebApp1 к другому страницу WebApp2 Пытаюсь сделать вывод данных из БД на другую страницу при нажатии на одно из значений на предыдущей страницы
Копирование данных из массива в массив Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|