![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 24.02.2012
Сообщений: 6
|
![]()
Здраствуйте
есть следующий код Public lLastRow As Long Public AddLine As Long Dim a As Integer Dim b As Integer Dim x As Integer Private Sub Worksheet_Activate() lLastRow = Cells.SpecialCells(xlLastCell).Row MsgBox (lLastRow) End Sub Private Sub Worksheet_Change(ByVal Target As Range) AddLine = Cells.SpecialCells(xlLastCell).Row MsgBox (AddLine) If AddLine > lLastRow Then x = Target.Row a = x + 6 b = a - 1 With Application.Worksheets("Report").Ac tivate Worksheets("Report").Range("A" & a, "BH" & a).Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Selection.AutoFill Destination:=Range("A" & b, "BH" & a), Type:=xlFillDefault End With End If End Sub в месте обозначенным оранжевым выдает ошибку подскажите пожалуйста что поправить, код должен копировать формулы в диапазон |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Код:
Вы бы показали файл Excel, и пояснили, что там надо делать, - глядишь, форумчане помогли бы упростить макрос, и сократить его до 1-2 строк кода... |
![]() |
![]() |
![]() |
#3 |
Регистрация: 24.02.2012
Сообщений: 6
|
![]()
собственно сам документ я выложить не могу коммерческая тайна))
но вот пример скопировал выдает такую же ошибку при выполнении макроса |
![]() |
![]() |
![]() |
#4 |
Регистрация: 24.02.2012
Сообщений: 6
|
![]()
Этот код должен отслеживать вставку новой строки в любом месте листа1 и вставлять строку в соответствующем месте на лист2, связано это с тем что при вставке строки на листе 1 появляется промежуток в ссылочных ячейках.
Например вставили на листе строку меду 5-й и 6-й соответственно сслыки на ячейки на листе два будут А5 и А7 а 6 строка останется незадействованой |
![]() |
![]() |
![]() |
#5 |
Регистрация: 24.02.2012
Сообщений: 6
|
![]()
неужели ни кто не знает причину?
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 24.02.2012
Сообщений: 6
|
![]()
Public lLastRow As Long
Public AddLine As Long Dim a As Integer Dim b As Integer Dim x As Integer Private Sub Worksheet_Activate() lLastRow = Cells.SpecialCells(xlLastCell).Row MsgBox (lLastRow) End Sub Private Sub Worksheet_Change(ByVal Target As Range) AddLine = Cells.SpecialCells(xlLastCell).Row MsgBox (AddLine) If AddLine > lLastRow Then x = Target.Row a = x + 6 b = a - 1 With Application.Worksheets("Report").Ac tivate Worksheets("Report").Range("A" & a, "BH" & a).Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("A" & b, "BH" & b).AutoFill Destination:=Range("A" & b, "BH" & a) End With End If End Sub нашел ошибку неправильно был указан диапазон метода autofill, спасибо за помощь! теперь у меня возникла другая проблема эту строку прграмма просто игнорирует, подскажите почему? |
![]() |
![]() |
![]() |
#7 |
Регистрация: 24.02.2012
Сообщений: 6
|
![]()
Public lLastRow As Integer
Public AddLine As Integer Private Sub Worksheet_Activate() lLastRow = Cells(Rows.Count, "A").End(xlUp).Row End Sub Private Sub Worksheet_Change(ByVal Target As Range) AddLine = Cells(Rows.Count, "A").End(xlUp).Row x = Target.Row b = x + 6 a = b - 1 If AddLine > lLastRow Then Worksheets("Report").Range("A" & b, "BH" & b).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Set SourceRange = Worksheets("Report").Range("A" & a, "BH" & a) Set fillRange = Worksheets("Report").Range("A" & a, "BH" & b) SourceRange.AutoFill Destination:=fillRange ElseIf AddLine < lLastRow Then Worksheets("Report").Range("A" & b, "BH" & b).Delete End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) lLastRow = Cells(Rows.Count, "A").End(xlUp).Row End Sub вот в таком виде код точно работает кому интересно, еще раз спасибо за помощь здесь очень участливые люди собрались))) |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка 1004 при создании PivotCache.Recordset | Cave_IAR | Microsoft Office Excel | 5 | 26.01.2012 00:53 |
Ошибка run-time Error 1004 общая ошибка ODBC | kaval88 | Microsoft Office Excel | 0 | 27.02.2011 20:20 |
Ошибка макроса Runtime ERROR 1004 | RML | Microsoft Office Excel | 3 | 20.05.2010 23:33 |
Ошибка I 1004 | kaviga | Безопасность, Шифрование | 3 | 29.11.2009 19:37 |
Ошибка 1004 | Alesashka | Microsoft Office Excel | 3 | 09.10.2008 11:13 |