powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как в документ Excel вставить несколько строк одной командой VBA?
23 сообщений из 23, страница 1 из 1
как в документ Excel вставить несколько строк одной командой VBA?
    #33225017
sbgeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть вместо

Range.EntireRow.Insert
Range.EntireRow.Insert
...
Range.EntireRow.Insert

выполнить одну команду???

нужно это для копирования в этот вставленный Range, поэтому хорошо бы иметь сылку (объект Range) на первую (левую, верхнюю) ячейку этого вставленного фрагмента
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225237
Код: plaintext
1.
2.
For i =  1  To  10 
    Range.EntireRow.Insert
Next
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225272
sbgeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за отклик

это не то, что нужно

суть в том, что нужна ОДНА команда, заменяющая собой вызов 10, вставлять строки так - тормоза.

речь идет об использовании automation, команды посылаются приложением, так вот сокращение количества команд существенно увеличивает производительность. Дело в этом.
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225598
неправда. это именно то, что вам нужно.
вы не хотите читать, что вам написали.

EntireRow.Insert
произойдет в количестве штук строк, попадающих в Range

если там 10 строк, то код
Код: plaintext
1.
2.
For i =  1  To  10 
    Range.EntireRow.Insert
Next
вставит всего 100 строк за цикл из десяти шагов.

ЗЫ
вы все-таки подумайте, прежде чем отказаться от этого окончательно.
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225635
sbgeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к сожалению у меня нет Range с нужным количеством строк, а есть Range перед которым нужно вставить N строк. Получается мне предварительно необходимо создать Range нужного размера и потом позвать его EntireRow.Insert, что в принципе сокращает количество команд, если строк больше двух. Таким образом, делаю вывод, что команды (вставить N строк перед Range) нужной мне нет.

и кроме того в результате нужна ссылка на Range, который соответствует первой ячейке вставленного фрагмента. После EntireRow.Insert можно получить Range = Selection.Cells(1,1), но это еще одна команда. А так хотелось...
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225645
Leon.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создается впечатление, что вы пытаетесь экономить строчки кода.. ;-)
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225674
sbgeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вполне возможно

генерация отчетов посредством automation сплошной тормоз, по сравнению например с генерацией XML для Office2003 или тектовый отчет

но бывает нужно, поэтому считаю необходимым экономить
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225711
2 sbgeo
слов, которые вы говорите ("сначала создать диапазон" или "у меня нет диапазона , а у меня есть диапазон перед которым..." ) - я не понимаю.
Или вы хотите вставить строки и знаете (например - можете вычислить)
где это должно произойти, либо вам этого совсем не нужно, и вы еще не нашли слов для выражения своих потребностей.

а "еще одна команда" обязательно понадобится. Insert - это sub.
значения в виде диапазона он не возвращает, а меняет текущий объект диапазона. здесь иных вариантов автоматизации нет.
(так мне кажется)




потому приношу свои извинения за то, что помешал чужому разговору.
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225762
sbgeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо за внимание

возможно я действительно изъясняюсь не очень понятно, может поэтому и удовлетворительного решения пока не нашел

исходные данные:

на входе есть два объекта Range: RangeTo, RangeWhat

RangeTo - диапазон, перед которым необходимо вставить что-то (а именно RangeWhat)
RangeWhat - диапазон, содержимое которого нужно вставить перед RangeTo

решение вижу в использовании RangeWhat.Copy(RangeDestination), где RangeDestination - диапазон, куда вставляется RangeWhat

итак задача сводится к
- вставке перед RangeTo количества строк, соответствующего кол-ву строк в RangeWhat
- определение RangeDestination, как первой (левой верхней) ячейки вставленного перед RangeTo диапазона

если кто дочитал, большое спасибо

может быть есть более изящное решение?
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225863
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лень смотреть на макросы
копните сюда :
скопируйте с листа чонить в буфер обмена это типа RangeWhat
встаньте куданить - RangTo
правая педаль


...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225870
sbgeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clipboard не катит никак, потому и пользую Range.Copy
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225886
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sbgeoclipboard не катит никак, потому и пользую Range.Copy
a range.copу куда копирует ??? на жесткий диск что ли ?
вот
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim R1 As Range
Dim r2 As Range

Dim r3 As Range

Set R1 = Range("A4:A10")
Set r2 = Range("D11:D18")

r2.Copy
    
R1.Range("A1").Select

Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225915
sbgeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такой алгоритм сейчас и реализован, от него и нужно уйти, а именно уйти от использования Clipboard.

у Range.Copy() есть параметр, Destination, если его опустить, то копируется в Clipboard, иначе же в указанное место. Так вот созданием этого "указанного места" я и занимаюсь.
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225952
код, занимающийся собственно вставкой пустых строк на заявленных вами
условиях, мог бы быть таким.

Код: plaintext
RangeTo.Range(RangeTo( 1 ,  1 ), RangeTo(RangeWhat.Rows.Count,  1 )).EntireRow.Insert

переписать его можно множеством разных способов.
(уж пяток то - на бегу наберется.)
какой из них в вашем случае окажется лучшим - решайте сами.
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225957
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а есть уверенность, что при указании Destionation Excel не использует буфер обмена ?
тогда вперед - построчно ручками.
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225987
sbgeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
глупыйглупыйкод, занимающийся собственно вставкой пустых строк на заявленных вами
условиях, мог бы быть таким.

Код: plaintext
RangeTo.Range(RangeTo( 1 ,  1 ), RangeTo(RangeWhat.Rows.Count,  1 )).EntireRow.Insert

переписать его можно множеством разных способов.
(уж пяток то - на бегу наберется.)
какой из них в вашем случае окажется лучшим - решайте сами.

да, так я и сделал, а хочется так как в топике, ну и х. с ним

спасибо
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33225991
sbgeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeа есть уверенность, что при указании Destionation Excel не использует буфер обмена ?
тогда вперед - построчно ручками.


как бы в доке не читал, но это было бы уж слишком

спасибо
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #33227072
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Range("B2").Resize(10).EntireRow.Insert
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
как в документ Excel вставить несколько строк одной командой VBA?
    #37272243
VBA_Kiddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наверное уже не актуально, но всё равно напишу, чтобы было :))

Мне больше пригодился такой вариант для вставки нескольких строк после заданной в Excel из VBA, если известен номер строки и количество вставляемых строк:

Код: plaintext
1.
wsh_t.Range(Rows(iRow), Rows(iRow + nNewRows)).Insert Shift:=xlDown

Кажется он чуть-чуть покрасивее в некоторых случаях..
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #37272297
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если совсем честно. то не имеет смысла ВСТАВЛЯТЬ строки в какое-то место.
Если это таблица для БД (список какой-то, например) - проще сделать primary unique identifier (ну, пронумеровать записи, например) и просто добавлять строки в конец списка...
...
Рейтинг: 0 / 0
как в документ Excel вставить несколько строк одной командой VBA?
    #37272332
VBA_Kiddy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM ,
а если это НЕ таблица для БД? Или если под таблицей располагаются какие-нибудь дополнительные строки?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
как в документ Excel вставить несколько строк одной командой VBA?
    #38059230
MegaUm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Selection.Resize(5).EntireRow.Insert shift:=xlUp
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
как в документ Excel вставить несколько строк одной командой VBA?
    #39458700
runeft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я использовал такой способ:

Range(Rows(i + 1), Rows(i + n)).Insert

вставка n-строк после строки i
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как в документ Excel вставить несколько строк одной командой VBA?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]