Страницы: 1
RSS
Изменение макроса для вставки строк
 
Всем доброго дня!

На форуме встретил макрос для создания копии строки. Макрос срабатывает по событию двойного клика по ячейке. Для очистки отдельных ячеек в макросе указывается их расположение по названиям колонок.
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Count > 1 Then Exit Sub
    If Target.Column > 1 Then Exit Sub
    Application.ScreenUpdating = False
    Rows(Target.Row).Copy: Rows(Target.Row).Insert
    Cells(Target.Row, "I").Select: ActiveCell.ClearContents
End Sub  
Мне нужно создать таблицу, состоящую из большого количества колонок, в которых будут как данные для расчетов, так и формулы.

Можно-ли внести изменения в данный макрос, чтобы в созданной копии строки происходила очистка данных всех ячеек, не содержащих формулы, не зависимо от их расположения?

 
Так?
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Columns(1)) Is Nothing And Target.Count = 1 Then
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Me.Unprotect
    With Rows(Target.Row)
        .Copy
        .Insert
        .SpecialCells(xlCellTypeConstants).ClearContents
    End With
    Me.Protect Contents:=True, Scenarios:=True, UserinterfaceOnly:=True
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Sanja, спасибо за помощь!
Попробовал макрос.
При запуске макроса выдает сообщение "Ячейка или диаграмма защищены от изменений. Чтобы изменить... " и.т.д., но все действия производит.
Через несколько запусков макроса - "Прекращена работа программы "Microsoft Excel. Windows может попытаться восстановить данные"
Страницы: 1
Наверх