Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Сведение нескольких таблиц в одну, последовательно, Как в эксель объединить несколько таблиц в одну, последовательно, vba
 
del
Изменено: Roman911 - 24.10.2019 12:03:49
Сведение нескольких таблиц в одну, последовательно, Как в эксель объединить несколько таблиц в одну, последовательно, vba
 
Jack Famous,
спасибо, я просто понял, зачем это всё нужно (новая тема и название) и постарался сделать так, чтобы форум получил максимальный эффект :) На моих объёмах да, всё идеально. Первый раз когда совсем всё в ручную делалось я понял, что на за полчаса обработаю только 9000 строк. Сейчас 111 000 строк )  
Изменено: Roman911 - 24.10.2019 11:58:31
Сведение нескольких таблиц в одну, последовательно, Как в эксель объединить несколько таблиц в одну, последовательно, vba
 
Jack Famous,
И вам спасибо! С количеством крутая задумка, это тоже пригодится скорее всего ;) Уверен я не один нуб с такими проблемами )  
Изменено: Roman911 - 23.10.2019 20:52:41
Сведение нескольких таблиц в одну, последовательно, Как в эксель объединить несколько таблиц в одну, последовательно, vba
 
Ігор Гончаренко,

Спасибо огромное! Работает как надо!  
Как ускорить макрос, ограничив число просчитываемых строк?, макросы VBA
 
Jack Famous,
Сделал, ссылку https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=122023&TITLE_SEO=122023-svedenie-neskolkikh-tablits-v-odnu-posledovatelno&MID=1009514&result=new#message1009514
Добавил в первый пост здесь
Сведение нескольких таблиц в одну, последовательно, Как в эксель объединить несколько таблиц в одну, последовательно, vba
 
В продолжение темы:
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=121965&TITLE_SEO=121965-kak-uskorit-makros-ogranichiv-chislo-proschityvaemykh-strok

Существует ли способ быстрого объединения таблиц в одну, последовательно?
1. Таблицы не имеют шапки
2. Таблицы по 100 строк и 6 столбцов.
3. Таблицы расположены на одном листе, друг за дружкой. Таблиц таких может быть до 45 штук

Данные не должны перемешаться, объединиться или как-то ещё измениться. Нужно просто расположить их вертикально друг за дружкой без разрыва, по сути сделать одну длинную таблицу.

В оригинале стобцы в таблицах-исходниках никак не подсвечены и не названы, в файле-примере я для удобства восприятия их покрасил.
В файле-примере лист1 - это то, что есть, лист2 - то, что должно получиться.  
Как ускорить макрос, ограничив число просчитываемых строк?, макросы VBA
 
Jack Famous, принял и ещё раз спасибо )

PS а есть какой способ, объединения получившихся таблиц в одну, последовательно? без копипаста руками, а то вчера скинули материала на 470 столбцов ещё  :(  При том, что теперь я точно знаю, что в базе значений всегда 600, т.е. 6 столбцов в итоговой таблице будет
Как ускорить макрос, ограничив число просчитываемых строк?, макросы VBA
 
Пытливый, Юрий М, Jack Famous,

Блин, мужики, огромное спасибище. Скиньте номера телефонов, я хоть как-то отблагодарю.

Всё работает как надо  :)  
Как ускорить макрос, ограничив число просчитываемых строк?, макросы VBA
 
Пытливый, да уж, в предложение уместили то, что реально нужно сделать :)
1. Не с J1, либо со столбца AW, либо на другом листе
2 Всегда подряд идут, все по 100 значений
3 Это самый лучший вариант

Есть только 1 момент, в исходных столбцах 1-е 100 значений попадают в 1-й столбец итоговой таблицы, 2-е 100 значений попадают во 2-й столбец итоговой таблицы, 3-е 100 значений в 3й столбец и т.д..

Юрий М,
1. Как уже выше ответил Пытливому, да, любой
2. Значения в исходных столбцах по 100 строк идут, да
3. Либо со столбца AW, либо другой лист)
Изменено: Roman911 - 22.10.2019 15:55:11
Как ускорить макрос, ограничив число просчитываемых строк?, макросы VBA
 
2 Jack Famous

Не понимаю, какой я тогда файл должен сбросить? Сам скрипт работает так, как нужно. Он просто работает медленно. Как было и как нужно - это выполнение скрипта не 10 секунд, а 1 секунду. Я описал выше, в каком случае это возможно.

Столбец J и далее - это получившаяся таблица из столбца А
Изменено: Roman911 - 22.10.2019 15:19:24
Как ускорить макрос, ограничив число просчитываемых строк?, макросы VBA
 
Юрий М? cпасибо, исправил

Пытливый, начну с пункта 3 :)
Я не знаю vba совершенно, максимум что смог сделать - найти этот код, который частично задачу решает и для оптимизации работы добавить строку с подсветкой "уже обработанного столбца-донора". Искал и на форуме этом и в принципе в гугле, видимо моих познаний не хватает, чтобы правильно сформировать запрос. Т.к. "ограничить число строк в vba" и схожие запросы выдают не то.

Пункт 1. Исходя из пункта 3, описал так, как смог
Пункт 2. Файл приложил.

Задача у меня простая: мне нужно обработать 290 столбцов, в файле примере заполнены A-С столбцы, А уже обработан.Это столбцы-доноры. Результат обработки - начинается со столбца J. Столбец А содержит 400 значений и больше, но всегда кратно 100. Мне нужно этот столбец разбить на несколько столбцов по 100 значений в каждом. Каждый последующий столбец добавляется в конец получающейся таблицы, которая начинается с J. По итогу обработки получится длинная таблица из 4-6 столбцов. При работе макроса он спрашивает диапазон - я просто тыкаю на название столбца. Выделять диапазон руками или прописывать его каждый раз - ещё дольше, чем просто 10 секунд подождать, пока макрос работает.  Куча времени уходит на то, что макрос из столбца донора обрабататывает ВСЕ ячейки (я уже нагуглил, что всего их больше миллиона), пустые в том числе. Как сделать, чтобы он обрабатывал либо только заполненные, либо только НЕ больше 1000, я не знаю.
В параметрах листа если установить видимый диапазон меньше, то пропадает возможность "тыкнуть" на имя столбца. В общем этот метод не сработал.  
Изменено: Roman911 - 22.10.2019 15:23:39
Как ускорить макрос, ограничив число просчитываемых строк?, макросы VBA
 
Всем привет!
Друзья, помогите ускорить вот этот макрос:
Код
Sub SplitColumn()
    'Updateby20141106
    Dim rng As Range
    Dim InputRng As Range
    Dim OutRng As Range
    Dim xRow As Integer
    Dim xCol As Integer
    Dim xArr As Variant
    xTitleId = "KutoolsforExcel"
    Set InputRng = Application.Selection
    Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
    xRow = 100
    Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
    Cells(InputRng.Row, InputRng.Column).Resize(InputRng.Rows.Count, 1).Interior.Color = 15773696
    Set InputRng = InputRng.Columns(1)
        xCol = InputRng.Cells.Count / xRow
    ReDim xArr(1 To xRow, 1 To xCol + 1)
    For i = 0 To InputRng.Cells.Count - 1
        xValue = InputRng.Cells(i + 1)
        iRow = i Mod xRow
        iCol = VBA.Int(i / xRow)
        xArr(iRow + 1, iCol + 1) = xValue
    Next
    OutRng.Resize(UBound(xArr, 1), UBound(xArr, 2)).Value = xArr
End Sub

Он разбивает информацию в одном столбце на табличку из нескольких столбцов, в каждом из которых 100 значений только. В столбце-доноре заполненных ячеек от 600 до 2000 штук. Проблема такая, что при работе нужно выделять полностью столбец (т.е. автоматом вводятся значения, например $A:$A), вписывать вручную или выделять вручную диапазон - не вариант, ещё дольше будет (т.к. столбцов много). И из этой проблемы вытекает следующая: на 1 столбец скрипт выполняется 10 секунд, потому что просчитывает все 1кк строчек в этом столбце. Пробовал вручную выделять диапазон в 600 строк - делает мгновенно

Как сделать так, чтобы макрос вычислял не более 1000 или 2000 строк в столбце? В идеале конечно, чтобы он просчитывал только заполненные ячейки.

UPD. Продолжение темы со сведением таблиц тут:
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=122023&TITLE_SEO=122023-svedenie-neskolkikh-tablits-v-odnu-posledovatelno&MID=1009514&result=new#message1009514
Изменено: Roman911 - 23.10.2019 17:39:51
Страницы: 1
Наверх