Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

макрос вставки строки

Автор Mailo, 09.11.2011, 19:56

« назад - далее »

Mailo

Есть макрос вставки строки.
Sub Insert_Rows()
If Selection.Rows.Count > 1 Then Exit Sub
r_ = Selection.Row
   Sheets("Журнал_рег").Rows(5).Copy
   Rows(r_).Insert Shift:=xlDown
   Application.CutCopyMode = False
End Sub

суть в том,что макрос вставляет не пустую строку,а 5 строчку.(это и требуется)
но кроме вставки строки,должны и протягиваться формулы.И тут одна проблема. Формулы протягиваются во всех строках кроме одной.
Например:если я поставлю курсор в 6 строку и нажму "добавить" то не корректно протянится одна формула в ячейке I7.
=ЕСЛИ(СЧЁТЕСЛИ($B$3:B6;B8);ПРОСМОТР(2;1/($B$3:B6=B8);$I$3:I6))+E8-H8. А вместо В6 должно быть В7. Во всех нижних ячейках,формула протягивается правильно.Корочи, в примере понятнее. Посмотрите лист Журнал_рег.Спасибо

Wasilic

#1
Если скопировать отдельно формулу в следующую за вставленной строкой, то можно "выкрутиться"  :)
Sub Insert_Rows()
If Selection.Rows.Count > 1 Then Exit Sub
r_ = Selection.Row
    Sheets("Журнал_рег").Rows(5).Copy
    Rows(r_).Insert Shift:=xlDown
    Application.CutCopyMode = False
    Range("I5").Copy
    Range("I" & r_ + 1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False

End Sub

Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

_Boroda_

А если просто поменять порядок действий:
Sub Insert_Rows()
If Selection.Rows.Count > 1 Then Exit Sub
r_ = Selection.Row
    Rows(r_).Insert Shift:=xlDown
    Sheets("Журнал_рег").Rows(5).Copy Range("A" & r_)
    Application.CutCopyMode = False
End Sub
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

Mailo

Wasilic,спасибо.Помогло.Правда так и не понял в чем глюк и почему формула не протягивалась, но главное сработало))))