Страницы: 1
RSS
Вставка строки с формулами как в предыдущей строке.
 
Помогите, пожалуйста! Честно искала, но не нашла работающего ответа.  
Есть заполняемая таблица.  
Данные вводятся во все столбцы кроме I, O, P. Q. В этих столбцах формулы.    
Нужен макрос, который бы вставлял в конец таблицы новую строку с формулами как в предыдущей, но без данных.  
А если бы макрос совмещал в себе ещё и вставание на первую пустую строку в низу таблицы (чтобы не скролить 2000 строк), было бы вообще чудо волшебное.  
Заранее благодарю.
 
Макрос совсем не сложный:  
 
Sub ДобавлениеСтроки()  
   Dim ro As Range: Set ro = Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow  
   Rows(2).Copy ro: ro.Cells(1).Select  
   ro.SpecialCells(xlCellTypeConstants).ClearContents  
End Sub  
 
 
Пример во вложении:
 
А почему бы не обойтись созданием обыного "Списка" (XL-2003) или же "Таблицы" (Xl-2007)? Если автор сделал "запас" формулы на 60 тыс. строк, то на каких-то 2 тыс прейти по Ctrl+End - пустяк. А достоинств у списков/таблиц оченно немало... И формулы автоматом, и промитоги при включенном фильтре...
 
{quote}{login=EducatedFool}{date=11.08.2009 05:12}{thema=}{post}Макрос совсем не сложный:  
Sub ДобавлениеСтроки()  
   Dim ro As Range: Set ro = Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow  
   Rows(2).Copy ro: ro.Cells(1).Select  
   ro.SpecialCells(xlCellTypeConstants).ClearContents  
End Sub  
Пример во вложении:{/post}{/quote}  
Огромное человеческое спасибо!  
То, что доктор прописал.
 
{quote}{login=}{date=11.08.2009 05:29}{thema=}{post}А почему бы не обойтись созданием обыного "Списка" (XL-2003) или же "Таблицы" (Xl-2007)? Если автор сделал "запас" формулы на 60 тыс. строк, то на каких-то 2 тыс прейти по Ctrl+End - пустяк. А достоинств у списков/таблиц оченно немало... И формулы автоматом, и промитоги при включенном фильтре...{/post}{/quote}  
Тут двойная проблема.  
Запас строк д.б. не ограничен, т.к. 2000 строк - это такой условный показатель. Самостоятельно пользователи надобавляют копипастом такого... Вспоминать не хочется. Отсюда список длинною "сразу много", а он весит до фига.  
Не у  всех, кто будет пользоваться этой таблицей, компы достаточно суровы, чтобы не зависать на 5-10 секунд при автосохранении :-/
 
{quote}{login=The_Prist}{date=11.08.2009 05:16}{thema=}{post}Попробуйте так  
{/post}{/quote}  
Тоже волшебно работает:)  
Спасибище!
 
{quote}{login=Жаба}{date=12.08.2009 09:50}{thema=Re: }{post}{quote}{login=EducatedFool}{date=11.08.2009 05:12}{thema=}{post}Макрос совсем не сложный:  
Sub ДобавлениеСтроки()  
   Dim ro As Range: Set ro = Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow  
   Rows(2).Copy ro: ro.Cells(1).Select  
   ro.SpecialCells(xlCellTypeConstants).ClearContents  
End Sub  
Пример во вложении:{/post}{/quote}  
Огромное человеческое спасибо!  
То, что доктор прописал.{/post}{/quote}  
Работает безупречно, пока шаловливые ручки пользователей не дотягиваются до строк из которых копируются формулы :-(    
 
Как прописать копирование строки с другого листа или файла?  
Помогите, пожалуйста.
 
Так чтоб ручки не дотягивались надо не копировать формулы из предыдущей строки а вставлять формулы в текущую по мере заполнения, точнее даже не их а результат вычислений-поменял исходные данные в строке пересчет .
 
{quote}{login=Микки}{date=12.10.2009 02:01}{thema=}{post}Так чтоб ручки не дотягивались надо не копировать формулы из предыдущей строки а вставлять формулы в текущую по мере заполнения, точнее даже не их а результат вычислений-поменял исходные данные в строке пересчет .{/post}{/quote}  
Формулы копируются из определённых строк (спасибо EducatedFool). Очень удобно - разные строки "обслуживают" разные операции. Но фигня в том, что таблицей пользуются несколько человек, которых хлебом не корми, а дай отфильтровать что-нибудь по всяким разным признакам.    
Я уже сделала (ну не я конечно, а скопировала:) предварительное раскрытие, но плохо помогает, т.к. очередность строк отличается от стартовой.  
В результате строки меняют свой номер, и вся красота летит к чёртовой бабушке.  
Запретить фильтр нельзя по условиям пользования.    
 
Сейчас макрос выглядит так:  
Sub Заявка_На_Ремонт()  
If ActiveSheet.FilterMode = True Then  
ActiveSheet.ShowAllData  
End If  
   Dim ro As Range: Set ro = Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow  
   Rows(5).Copy ro: ro.Cells(3).Select  
   ro.SpecialCells(xlCellTypeConstants).ClearContents  
   ActiveCell.FormulaR1C1 = "=R[-1]C+1"
   Selection.Copy  
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _  
       :=False, Transpose:=False  
ActiveWorkbook.Save  
ActiveCell.Offset(0, 1).Activate  
End Sub
 
Поможите_Люди_Добрые!  
 
Как прописать копирование строки с другого листа или файла в таком вот макросе?  
Sub ДобавлениеСтроки()  
Dim ro As Range: Set ro = Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow  
Rows(2).Copy ro: ro.Cells(1).Select  
ro.SpecialCells(xlCellTypeConstants).ClearContents  
End Sub
 
{quote}{login=Жаба}{date=12.10.2009 09:20}{thema=}{post}Поможите_Люди_Добрые!  
 
Как прописать копирование строки с другого листа или файла в таком вот макросе?  
Sub ДобавлениеСтроки()  
Dim ro As Range: Set ro = Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow  
Sheets("Реестр ПП").Rows(2).Copy ro: ro.Cells(1).Select  
ro.SpecialCells(xlCellTypeConstants).ClearContents  
End Sub{/post}{/quote}  
 
Образец копирует вот эта строка кода Rows(2).Copy  
Укажите явно с какого листа копировать и должно получиться  
Sheets("Реестр ПП").Rows(2).Copy
 
{quote}{login=Igor67}{date=12.10.2009 09:31}{thema=Re: }{post}{quote}{login=Жаба}{date=12.10.2009 09:20}{thema=}{post}Поможите_Люди_Добрые!  
 
Как прописать копирование строки с другого листа или файла в таком вот макросе?  
Sub ДобавлениеСтроки()  
Dim ro As Range: Set ro = Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow  
Sheets("Реестр ПП").Rows(2).Copy ro: ro.Cells(1).Select  
ro.SpecialCells(xlCellTypeConstants).ClearContents  
End Sub{/post}{/quote}  
 
Образец копирует вот эта строка кода Rows(2).Copy  
Укажите явно с какого листа копировать и должно получиться  
Sheets("Реестр ПП").Rows(2).Copy{/post}{/quote}  
 
Спасибо большое.  
Сама не могла совладать с написанием откуда копировать.  
Ещё раз спасибо.
 
Помогите, плиз. Задача схожая, только мне нужно вставлять новую строчку там, где стоит курсор.  
сложность для меня в том, что при вставки строчки, формулы (нарастающий итог), которые находятся перед новой строчкой меняют свои ссылки на предшествующую строчку, т.е. происходит разрыв.  
 
Например:    
формула в ячейке В2 =А1+А2. Вставляю новую строку (второй), но получается, что формула в ячейке В3 =А1+А3, т.е. изменилась ссылка.
 
{quote}{login=ls413}{date=27.10.2009 02:23}{thema=Вставка стороки}{post}Помогите, плиз. Задача схожая, только мне нужно вставлять новую строчку там, где стоит курсор.  
сложность для меня в том, что при вставки строчки, формулы (нарастающий итог), которые находятся перед новой строчкой меняют свои ссылки на предшествующую строчку, т.е. происходит разрыв.  
 
Например:    
формула в ячейке В2 =А1+А2. Вставляю новую строку (второй), но получается, что формула в ячейке В3 =А1+А3, т.е. изменилась ссылка.{/post}{/quote}  
 
Поиском попробуйте попользоваться, на прошлой неделе от Dophin именно этот вопрос решали...
 
http://www.planetaexcel.ru/forum.php?thread_id=10763
Страницы: 1
Читают тему
Наверх