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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2010, 07:01   #1
EJIF
 
Регистрация: 16.01.2010
Сообщений: 3
По умолчанию вставка пустой строки относит акт ячейки и копир диап

Для упрощения работы требуется такой макрос - имеется таблица данных (числовые знач, формулы, текст) при работе часто выполняются след действия - в таблицу вставляется новая строка (выше активной ячейки) и с верхней (относительно ее) строки вставляется первые пять ячеек.

Пробовал методом записи макроса, но там всегда подставляются конкретные знач диапазона(те A1:E1 или A5:E5)

Sub Макрос3()
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A5:E5").Select
Selection.AutoFill Destination:=Range("A5:E6"), Type:=xlFillDefault
End Sub

как переделать, чтобы вставлялось относительно активной ячейки?
EJIF вне форума Ответить с цитированием
Старый 05.07.2010, 07:46   #2
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Sub Макрос3()
Dim R
R = ActiveCell.Row
Selection.EntireRow.Insert
Range("A" & R - 1 & ":E" & R - 1).Select
Selection.AutoFill Destination:=Range("A" & R - 1 & ":E" & R), Type:=xlFillDefault
Range("A" & R).Select
End Sub
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 05.07.2010, 08:09   #3
EJIF
 
Регистрация: 16.01.2010
Сообщений: 3
По умолчанию

Цитата:
Сообщение от alex77755 Посмотреть сообщение
Sub Макрос3()
Dim R
R = ActiveCell.Row
Selection.EntireRow.Insert
Range("A" & R - 1 & ":E" & R - 1).Select
Selection.AutoFill Destination:=Range("A" & R - 1 & ":E" & R), Type:=xlFillDefault
Range("A" & R).Select
End Sub
Спасибо(работает отлично)! Попробую разобраться с этим вариантом.

Сам написал это -
Sub Макрос1()
Dim a, b As Integer
a = ActiveCell.Row
b = ActiveCell.Column
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range(Cells(a - 1, b), Cells(a - 1, b + 5)).Select
Selection.Copy
Cells(a, b).Select
ActiveSheet.Paste
End Sub

но тут несколько косяков -
не смог обойтись без переменной (при прямой ссылке выдает ошибку компил)
и не снимается область выделения при копировании.
EJIF вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка пустой ячейки в DGV coper Общие вопросы .NET 2 11.08.2010 05:49
перенос строки с пустой ячейки HospodySave Microsoft Office Excel 10 24.06.2010 07:16
Заполнение пустой ячейки в строке предидущим значением 1134 Microsoft Office Excel 2 21.01.2010 16:26
удаление строки, начинающейся с пустой ячейки grichanuk Microsoft Office Excel 3 01.12.2009 05:31
вопросы по польз. функциям (возврат номера акт.строки) zetrix Microsoft Office Excel 0 30.10.2006 19:08