|
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 15
|
||||||
Перенос ячеек внутри файла excel05.11.2009, 22:18. Показов 6563. Ответов 23
Метки нет (Все метки)
есть таблица excel:
Лист1 столбец A: 1022 уникальных номеров (регистрационные номера банков) Строка C3-GJ3 (около 200): разные виды счетов ячейки C4 - GJ1022: пока пустые Лист2 ~23000 строк столбец A: уникальные номера (это банки, если что) столбец B: разные виды счетов, около 200 разных столбец C: циферки, которые должны быть перемещены(скопированы) в диапазон C4 - GJ1022 Тоже самое другими словами: В столбце C (на втором листе) - то, что должно быть на пересечении циферок из A и B Соответственно, на первом листе надо разместить 1022 строчки и ~200 столбцов, на пересечении которых будут данные из столбца C со второго листа Если и так непонятно, могу выложить файлы) Всего очень похожих задач у меня штук 10 будет, так что нужно что-то гибкое Добавлено через 25 минут Вот попробовал написать, но это только алгоритм, как это привязать к реальной таблице не представляю... mas1 и mas2 - это я так представил первый и второй лист (я понимаю, что обращение производится как-то по-другому, но сейчас времени просто нет синтаксис учить). Вопрос ещё, совсем нубский: а в vba индексы массивов с нуля или единицы начинаются?
0
|
||||||
| 05.11.2009, 22:18 | |
|
Ответы с готовыми решениями:
23
Перенос информации из ячеек Excel в Word Построчный перенос данных из ячеек Excel в закладки Word
|
|
19318 / 2626 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
|
|
| 05.11.2009, 22:42 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 15
|
|||||||||||
| 06.11.2009, 10:25 [ТС] | |||||||||||
|
Так, вот v1.2 - выдает
runtime error 9 subscript out of range Когда добавил эту строчку
0
|
|||||||||||
| 06.11.2009, 10:55 | ||
|
1-я ошибка: List2 нужно взять в кавычки. 2-я ошибка: Вылазит ошибка когда значение переменной i достигает 257. Чего на самом деле быть не может. Это связано с тем, что в экселе 2003 количество столбцов равно 256. Выход заключается в переходе к экселю 2007 или другом расположении данных.
0
|
||
|
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 15
|
|
| 06.11.2009, 11:02 [ТС] | |
|
analyst, У меня 2007 SP2
Кавычки сделал, но я запутался: в Cells(x, y) x - это строки, а y - столбцы, или наоборот?
0
|
|
|
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 15
|
|
| 06.11.2009, 11:56 [ТС] | |
|
Файлик больно большой, выкладываю порезанный (оставил на втором листе только 617 строк, в моем файле их 22906 и банков получилось всего штук 15, но для понимания, думаю, хватит)
Почему нельзя выкладывать *.xlsx?
0
|
|
|
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 15
|
||||||
| 06.11.2009, 12:27 [ТС] | ||||||
|
версия 1.3 вышла рабочая, проверил пока на резаном файле, все скопировал правильно. выполнялось секунд 5.
0
|
||||||
|
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
|
|
| 06.11.2009, 13:20 | |
|
s72068, если копируется диапозон ячеек, то думаю лучше использовать range.copy , range.paste
Добавлено через 29 минут s72068, опишите условия копирования, вообщем, что должно происходите в результате выполнения..
0
|
|
|
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 15
|
|
| 06.11.2009, 13:36 [ТС] | |
|
Chipnddail, range.copy , range.paste работают быстрее?
проверил свой скриптик в бою - выдержал, проверил случайные значения - все правильно Условия: Со второго листа из столбика С каждое значение должно копироваться в соответствующую ячейку на первом листе (на пересечении номера банка и номера счета, на втором листе это столбцы A, B в соответствующих строках). Сейчас копируются ~23000 значений, уже минут 10. Я подожду, но если есть способ кардинально ускорить процесс, буду признателен за подсказку
0
|
|
| 06.11.2009, 14:28 | ||
|
Идёте по значениям которые вам нужно вставлять. Если на первом листе удаётся найти идентификатор банка и соответствующий счёт, то вы можете получить ячейку в которую нужо вставлять это значение. Пользоваться нужно методом find. Так точно будет работать быстрее потому, что не нужно будет пробегать лишний раз кучу ячеек, но на сколько быстрее не знаю)
1
|
||
|
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
|
||||||
| 06.11.2009, 15:05 | ||||||
|
Попоробуте так, должно быть быстрее.
Должно работать, если только во втором листе номера банков в возрастающем порядке Работает Быстреее???
1
|
||||||
|
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 15
|
|
| 06.11.2009, 15:45 [ТС] | |
|
Chipnddail, да, действительно у меня заняло около минуты полный список раскидать.
Всем спасибо, если ни у кого предложений по оптимизации больше нет, думаю, тему можно закрывать
0
|
|
|
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
|
|
| 06.11.2009, 15:55 | |
|
s72068, ща погодите попробуем с find
0
|
|
| 06.11.2009, 16:12 | ||||||
|
Есть ещё такой вариант.
0
|
||||||
|
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 15
|
|
| 06.11.2009, 16:18 [ТС] | |
|
)) хм. я думаю, стоит выложить полный файл где-нибудь.
У меня тут на порядок посложнее задачка назрела, теперь у каждого банка по 12 параметров для каждого счета (всего около 3.45 млн значений), на ней будет правильнее методы проверять. Есть мысль, что таблицу надо или 3-мерную делать, или очень большую, но тогда считать все это будет гораздо сложнее. собственно, три оси - номера счетов, номера банков и виды валюты Виды валюты: рубли; драг металы+инВалюта; итого для входящих остатков, оборотов за отчетный период по дебету и по кредиту, исходящих остатков даже не знаю что и делать с этим кошмарищем
0
|
|
|
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
|
|
| 06.11.2009, 16:28 | |
|
s72068, предложенный мной Метод работает неверно
0
|
|
|
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 15
|
|
| 06.11.2009, 16:38 [ТС] | |
|
Здесь второй файл, в нем данные только по одному банку. сделать надо примерно тоже самое.
На втором листе столбики располагаются соответственно. Если есть мысли, как это сделать проще, я открыт для всего
0
|
|
|
0 / 0 / 0
Регистрация: 06.11.2009
Сообщений: 3
|
||||||
| 06.11.2009, 16:39 | ||||||
|
Можно попробовать так:
0
|
||||||
|
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
|
||||||
| 06.11.2009, 17:12 | ||||||
|
Вот моя обновленная процедура
А на счет скорости замерил с помощью QueryPerformanceFrequency , QueryPerformanceCounter И результат удивил, даже меня моя процедура : 1,822 сек процедура analyst 3,238 сек!! Думал, что у analyst быстее, ан нет???!!
0
|
||||||
| 06.11.2009, 17:12 | |
|
Помогаю со студенческими работами здесь
20
Перенос данных из ячеек таблицы Excel в соответствующие ячейки шаблона Word
Перенос заливки из ячеек excel в ячейки Access
Перенос данных из Excel или таблицы Word в DataGridView простым копированием ячеек Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|