Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2010, 12:05   #1
n0str0m0
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 36
По умолчанию Как вставить пустую строку?

Имеется столбец с данными. Нужно перенести эти данные на другой лист, но так, чтобы после каждого значения вставлялась пустая строка, то есть на втором листе данные должны вставиться через одну строку. Данных очень много, подскажите, как автоматизировать процесс?
n0str0m0 вне форума Ответить с цитированием
Старый 02.12.2010, 12:28   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

1.переносите как есть.
2.поставьте курсор в ячейку, перед которой надо вставить первую пустую строку
3.выполните этот чудодейственный макрос
Код:
Sub Макрос1()
  Dim r As Long
  For r = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row To ActiveCell.Row Step -1
    Rows(r).Insert Shift:=xlDown
  Next
End Sub
или вот этот (действительно для одной колонки)
Код:
Sub Макрос2()
  Dim r As Long, c As Long
  c = ActiveCell.Column
  For r = Cells(Rows.Count, c).End(xlUp).Row To ActiveCell.Row Step -1
    Cells(r, c).Insert Shift:=xlDown
  Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 02.12.2010 в 12:32.
IgorGO вне форума Ответить с цитированием
Старый 02.12.2010, 15:31   #3
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Код:
=ЕСЛИ(ОСТАТ(СТРОКА(1:1);2);"";ИНДЕКС(Лист1!$A$1:$A$100;СТРОКА(1:1)/2))
Но при "данных очень много" лучше макрос.
vikttur вне форума Ответить с цитированием
Старый 03.12.2010, 02:46   #4
n0str0m0
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 36
По умолчанию

С макросом разобрался с горем пополам.
А вот с формулой от vikttur непонятки: когда ее вставлять, куда, на каком этапе?
n0str0m0 вне форума Ответить с цитированием
Старый 05.03.2011, 04:23   #5
n0str0m0
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 36
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
1.переносите как есть.
2.поставьте курсор в ячейку, перед которой надо вставить первую пустую строку
3.выполните этот чудодейственный макрос
Код:
Sub Макрос1()
  Dim r As Long
  For r = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row To ActiveCell.Row Step -1
    Rows(r).Insert Shift:=xlDown
  Next
End Sub
или вот этот (действительно для одной колонки)
Код:
Sub Макрос2()
  Dim r As Long, c As Long
  c = ActiveCell.Column
  For r = Cells(Rows.Count, c).End(xlUp).Row To ActiveCell.Row Step -1
    Cells(r, c).Insert Shift:=xlDown
  Next
End Sub
Пришлось возвратиться к теме. До сегодняшнего дня этот макрос меня выручал, а вот сегодня мне понадобилось вставить уже 2 пустых строки в листе. Мне казалось, что если я выполню этот чудо-макрос два раза, то и получу вставку двух строк, а не одной. Ан нет, логика не сработала, всавляет сначала 2 строки а потом 3, еще 3 и т.д. Попытка влезть в текст макроса и чего-то там поменять ни к чему хорошему не приводит, не могу я понять, где чего исправить, чтобы вставлял уже 2 или 3 пустых строки и тд. Если не трудно, подскажите, где нужно чего подправить, чтобы добиться желаемого.
n0str0m0 вне форума Ответить с цитированием
Старый 05.03.2011, 08:35   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Код:
Sub Макрос1()
  Dim r As Long
  For r = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row To ActiveCell.Row Step -1
    Rows(r).Insert Shift:=xlDown
    Rows(r).Insert Shift:=xlDown
  Next
End Sub
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 05.03.2011 в 08:38.
kuklp вне форума Ответить с цитированием
Старый 05.03.2011, 11:12   #7
n0str0m0
Пользователь
 
Регистрация: 02.12.2010
Сообщений: 36
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Код:
Sub Макрос1()
  Dim r As Long
  For r = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row To ActiveCell.Row Step -1
    Rows(r).Insert Shift:=xlDown
    Rows(r).Insert Shift:=xlDown
  Next
End Sub
Премного благодарен То, что нужно.
К тому же путем длительных умозаключений я выяснил разницу между двумя макросами и понял, какая бяка добавляет еще одну строку
n0str0m0 вне форума Ответить с цитированием
Старый 06.01.2017, 11:22   #8
Frai5
 
Регистрация: 03.01.2017
Сообщений: 7
По умолчанию

а как вставить одну пустую ячейку?
Ситуация такая, что в закрашенной строке нужно чтобы после активной ячейки вставлялась пустая (без форматов).
Ну и ячейка всегда выбирается разная, конечно.
Frai5 вне форума Ответить с цитированием
Старый 06.01.2017, 14:17   #9
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Код:
activecell.Offset (,1).Insert xltoright
activecell.Offset (,1).clear
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копировать строку фильтрованного списка в другую книгу, на последнюю пустую строку Gvaridos Microsoft Office Excel 11 24.11.2010 00:48
Как выбрать последный пустую строку в LISTBOX ? Aqil_f Microsoft Office Excel 14 06.09.2010 18:00
Преобразование даты в пустую строку insense БД в Delphi 6 02.07.2010 09:13
Удалить пустую строку из ListView Shouldercannon Общие вопросы Delphi 2 28.04.2010 16:02
Как вставить в строку <'>? TwiX Общие вопросы Delphi 9 08.08.2009 23:36