Подскажите, пожалуйста, как сделать так, чтобы дважды кликая на ячейку, например, А2 (и так далее вниз по списку) вся строка А2 влетала в строку А1 и заменяла ее. Видел где-то похожий алгоритм, что можно было заполнять форму, кликая на ячейку и вся строка смещалась вниз. Правда там не было замены копированием.
Подскажите, пожалуйста, как сделать так, чтобы дважды кликая на ячейку, например, А2 (и так далее вниз по списку) вся строка А2 влетала в строку А1 и заменяла ее. Видел где-то похожий алгоритм, что можно было заполнять форму, кликая на ячейку и вся строка смещалась вниз. Правда там не было замены копированием.ant6729
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, [a:a]) Is Nothing Then Cancel = True [a1] = Target End If End Sub
[/vba]
Так что ли нужно? В модуль листа: [vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, [a:a]) Is Nothing Then Cancel = True [a1] = Target End If End Sub
Строчка в которой кликается ячейка - не переносится вверх! И не заменяет собой полностью верхнюю строчку! Переносится только ячейка в строке, которую кликаешь и заменяет собой только ячейку вверху А нужно, чтобы строчка вся полностью переносилась с ячейкой, которую кликаешь, и заменяла самую верхнюю.
Да, Gustav, промазал с листом) Тем не менее...
Строчка в которой кликается ячейка - не переносится вверх! И не заменяет собой полностью верхнюю строчку! Переносится только ячейка в строке, которую кликаешь и заменяет собой только ячейку вверху А нужно, чтобы строчка вся полностью переносилась с ячейкой, которую кликаешь, и заменяла самую верхнюю.ant6729
Куда я только не вставлял Rows(1) = Target.Row Последний вариант был таким:[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, [a:a]) Is Nothing Then Cancel = True Rows(1) = Target.Row End If End Sub
[/vba]Я сломался... Куда это вставить?)
Куда я только не вставлял Rows(1) = Target.Row Последний вариант был таким:[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, [a:a]) Is Nothing Then Cancel = True Rows(1) = Target.Row End If End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, [a:a]) Is Nothing Then Cancel = True Cells(1, 1).EntireRow.Formula = Target.EntireRow.Formula End If End Sub
[/vba]
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, [a:a]) Is Nothing Then Cancel = True Cells(1, 1).EntireRow.Formula = Target.EntireRow.Formula End If End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, [a:a]) Is Nothing Then Cancel = True ' Cells(1, 1).Resize(1, 9) = Target.Resize(1, 9).Value' перенос только значений Target.Resize(1, 9).Copy Cells(1, 1).Resize(1, 9)' перенос всего End If End Sub
[/vba] Только непонятно что переносить - значения, формулы, форматы, ...
Так нужно? [vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, [a:a]) Is Nothing Then Cancel = True ' Cells(1, 1).Resize(1, 9) = Target.Resize(1, 9).Value' перенос только значений Target.Resize(1, 9).Copy Cells(1, 1).Resize(1, 9)' перенос всего End If End Sub
[/vba] Только непонятно что переносить - значения, формулы, форматы, ..._Boroda_
_Boroda_, спасибо за ответ! Мне все надо перенести и значение, и формат, и формулы Ваш код почему то не работает, но у меня уже есть в принципе вариант, который делает все как надо, я не могу разобраться в маленькой детали - что в нем изменить, чтобы переносил не всю строку, а только первые 9 столбцов Привожу код ниже, если вы сможете его скорректировать, буду премного благодарна!!!!!
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True Target.EntireRow.Copy Worksheets("КП").Range("A" & Rows.Count).End(xlUp).Offset(1) End Sub
_Boroda_, спасибо за ответ! Мне все надо перенести и значение, и формат, и формулы Ваш код почему то не работает, но у меня уже есть в принципе вариант, который делает все как надо, я не могу разобраться в маленькой детали - что в нем изменить, чтобы переносил не всю строку, а только первые 9 столбцов Привожу код ниже, если вы сможете его скорректировать, буду премного благодарна!!!!!
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True Target.EntireRow.Copy Worksheets("КП").Range("A" & Rows.Count).End(xlUp).Offset(1) End SubGoodzel
Вы уверены? Точно-точно? Докажите на примере. Неужели Вы думаете, что я положил сюда код, не проверив его предварительно в файле? Вообще-то Ваш приведенный код совсем не в первую строку переносит значения. А условие из первого поста именно такое. Если у Вас другое, то Еще раз прочитайте Правила форума и создайте свою тему
Прочитайте Правила форума Оформите код тегами (в режиме правки поста выделите его и нажмите на панели кнопку #)
Вы уверены? Точно-точно? Докажите на примере. Неужели Вы думаете, что я положил сюда код, не проверив его предварительно в файле? Вообще-то Ваш приведенный код совсем не в первую строку переносит значения. А условие из первого поста именно такое. Если у Вас другое, то Еще раз прочитайте Правила форума и создайте свою тему _Boroda_
_Boroda_, у меня вообще нет сомнений что я косяк, наверное не туда сохраняю... Да и не поняла куда вставить наименование листа, куда надо переносить Я прикладываю файл, не ругайте сильно за безграмотность
Обязательно воспользуюсь советом и создам отдельную тему, т.к. половина решения у меня уже есть
_Boroda_, у меня вообще нет сомнений что я косяк, наверное не туда сохраняю... Да и не поняла куда вставить наименование листа, куда надо переносить Я прикладываю файл, не ругайте сильно за безграмотность
Обязательно воспользуюсь советом и создам отдельную тему, т.к. половина решения у меня уже естьGoodzel