Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

Из правил форума: Тема должна отражать суть вопроса, топики типа "help please" будут удаляться!

Автор Тема: добавление строки  (Прочитано 269 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Анисия

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 7
добавление строки
« : 26.02.2018, 11:48:21 »

Доброго времени суток!
Мне необходимо настроить добавление строк в таблице, чтобы при двойном нажатии на ячейку "добавить" (C37) в таблице появлялась новая строка. Строка должна полностью цеплять все формулы и форматирования из предыдущей строки. Т.е. должна появиться строка (37,38) в интервале от B до BX с выпадающими списками, условными форматированиями, формулами и т.д. абсолютно аналогичная строке (35,36) и уже пронумерованная.
Как? Помогите ламеру.   
Записан

boa

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +31/-0
  • Оффлайн Оффлайн
  • Сообщений: 519
  • Доброта спасет мир...
Re: добавление строки
« Ответ #1 : 26.02.2018, 13:09:42 »

Здравствуйте, в таких ситуациях очень помогает макрорекордер
Листинг модуля листа "Лист1"
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Address = Range("добавить").Address Then
        Cancel = True
       
     With Application
        .Rows(Target.Row - 2 & ":" & Target.Row - 1).EntireRow.Copy
        .Rows(Target.Row).EntireRow.Insert Shift:=xlDown
        .CutCopyMode = False
        Target.Offset(-2, -1) = Target.Offset(-4, -1).Value + 1
        Target.Select
    End With
   
   End If
End Sub
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Анисия

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 7
Re: добавление строки
« Ответ #2 : 26.02.2018, 14:38:36 »

Спасибо большое!
Про макросы раньше разве что только слышала и то краем уха. Попыталась разобраться, пока не очень выходит. От программирования весьма весьма далека... последний раз на уроках информатики в школе сталкивалась, классе в 5ом, кажется, была такая Черепашка Лого :)

Я в такой же таблице сама пытаюсь запустить этот макрос и у меня выскакивает ошибка Runtime Error 1004: Method 'Range' Of Object '_Worksheet' failed, строка If Target.Address = Range("добавить").Address Then выделяется жёлтым цветом.
Я так понимаю, там ссылка куда-то не туда идёт или что-то такое. Как исправить?

Не нужно в цитату вставлять целое сообщение[МОДЕРАТОР]
« Последнее редактирование: 26.02.2018, 15:55:49 от vikttur »
Записан

boa

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +31/-0
  • Оффлайн Оффлайн
  • Сообщений: 519
  • Доброта спасет мир...
Re: добавление строки
« Ответ #3 : 26.02.2018, 16:08:00 »

в книге, приложенной к предыдущему посту, есть именованный диапазон "добавить" его можно увидеть нажав Ctrl+F3
он ссылается на ячейку с надписью "добавить".
Добавьте, по аналогии, именованный диапазон в своей новой книге.
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Анисия

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 7
Re: добавление строки
« Ответ #4 : 27.02.2018, 13:14:17 »

Спасибо! Всё работает)
А подскажите, пожалуйста, как сделать аналогичную ячейку с функцией удалить строку, если вдруг лишние добавились. Пытаюсь, но никак не выходит.
Записан

boa

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +31/-0
  • Оффлайн Оффлайн
  • Сообщений: 519
  • Доброта спасет мир...
Re: добавление строки
« Ответ #5 : 27.02.2018, 14:22:11 »

как сделать аналогичную ячейку с функцией удалить строку, если вдруг лишние добавились.

Вспоминается фраза из мультика: "вы и есть за меня будете?"

выделяете лишние строки/столбцы и... нажимаете Ctrl+"-"
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Анисия

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 7
Re: добавление строки
« Ответ #6 : 27.02.2018, 14:29:46 »

Нет, есть за меня не нужно) В дальнейшем планируется защита ячеек от редактирования. И все действия с добавлением/удалением строк хотелось вынести за рамки таблицы в подобие "кнопок". Нет так нет, буду дальше лопатить интернет, может-таки разберусь.
Записан

boa

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +31/-0
  • Оффлайн Оффлайн
  • Сообщений: 519
  • Доброта спасет мир...
Re: добавление строки
« Ответ #7 : 27.02.2018, 18:38:06 »

попробуйте адаптировать под свои нужды
Sub DeleteEmptyRow()
 ' удаляет пустые строки в выделенном диапазоне
    Dim F&: F = Selection.Row
    Dim l&: l = Selection.Rows.Count + F - 1
    Dim i&: For i = l To F Step -1
        If Application.WorksheetFunction.CountA(Selection.Rows(i - F + 1)) = 0 Then ActiveSheet.Rows(i).Delete
    Next
End Sub
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра
 



Темы без ответов

22.05.2018 11:38 Скрипт написать который допишет данные в файл 569
03.03.2018 00:00 Подсчет отработанного времени, за исключением заранее определенных перерывов 848
14.02.2018 10:11 Подготовить читабельную отчетность по платежам 821
23.01.2018 13:46 Найти вероятность повторной покупки 778
12.01.2018 23:56 Сделать отчет на Power BI (Dashboard) 1060
06.09.2017 10:43 Solver VBA не решает гиперболическое уравнение, но при этом решает гармоническое 1033
17.08.2017 12:15 Гиперссылка и фильтр одновременно макрос 1347
23.05.2017 11:20 Копирование данных из одной таблицы в умную таблицу по условию 2953
15.03.2017 15:45 автозамена картинок PowerPoint 1782
11.03.2017 13:43 Изменить нумерацию страниц 2013





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.13 секунд. Запросов: 111.