Доброго времен, вот и снова пришлось обратится за помощью! Давненько тут не был, всё изменилось К ЛУЧШЕМУ!
По существу вопроса, поясню следующее- просю помощи в виде кода VBA. Задача: при даблклике по номеру строки, надоскопировать онуюи вставить её под копируемой, очистив первые 18 ячеек, с сохранением форматирования .(или точнее формул в строке которую скопировали и вставили) Буду благодарен за ответ!
Вот же ж как уж где-то... Где помогающий будет код писать? На потолке? Ну, напишет, а Вы скажете: а у меня вот тама не так, а вот здеся вот так. Переделывайте, не принимается! жмем сюда
в этом примере я записал макрорекордером действие вставки по нужным параметрам. надо немного доделать, а именно: сейчас вставляется под 8 строкой а надо что бы вставка строки происходила именно под той строкой которую кликаем даблкликом на номере строки
то что вы предложили у меня не получилось вставить, (это конечный макрос или часть нужного?) ошибка прикреплена как фото...
может быть мне этот макрос помогут несколько откорректировать под мои задачи?
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim eRange As Range, yy As Long
Set eRange = Range("eRange")
yy = Target.Row
If yy > eRange.Row And yy < (eRange.Row + eRange.Rows.Count - 1) Then
Target.Parent.Rows(yy).Insert
Target.Parent.Rows(eRange.Row).Copy
Target.Parent.Rows(yy).PasteSpecial xlPasteFormulas
End If
End Sub
Вставляйте в модуль листа, с которым работаете. Это пример события на двойной клик. Макрос просто вставляет пустую строку в месте двойного клика, сдвигая строки вниз. Ваш файл посмотреть не могу, у меня Excel2003.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
.EntireRow.Copy
.Offset(1).EntireRow.Insert xlDown
Range(.Offset(1).EntireRow.Cells(1, 1), .Offset(1).EntireRow.Cells(1, 18).ClearContents
End With
End Sub
Если к этому автозаписанному привязать даблклик на нужной строке, получится то, что я уже выкладывал (только с мусором). Почему с мусором будет работать?
Range(.Offset(1).EntireRow.Cells(1, 1), .Offset(1).EntireRow.Cells(1, 1 8) .ClearContents Где именно? у вас снова смайл уберите в низу сообщения галочку показывать смайлы
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target .EntireRow.Copy .Offset(1).EntireRow.Insert xlDown Range(.Offset(1).EntireRow.Cells(1, 1), .Offset(1).EntireRow.Cells(1, 1 8) .ClearContents End WithEnd Sub