Перейти к содержимому

Почему не удаляется строка в excel функция удалить не активна

  • автор:

Почему не удаляется строка в excel функция удалить не активна

Сообщений: 5 Регистрация: 12.01.2013

12.01.2013 13:28:34

Пытаюсь удалить строки, опция «Удалить» из контекстного меню и в закладке «Ячейки» не активна, на других листах все работает. Если выделить ячейку в строке опция «Удалить» есть, жамкаю и таблица начитает сходить с ума — скролл не работает и все кривое. Подозреваю, что слетели какие-то настройки, проверила только наличие блокировки листа — не установлена.

Какие еще настройки поковырять?
Заранее спасибо))

Почему не удаляется строка в excel функция удалить не активна

Подскажите пожалуйста!
Имеется лист, в котором защищены от изменения несколько столбцов, содержащих формулы.
Пользователь может пользоваться фильтром и удалять не нужные ему строки.
Вернее он Хочет это делать, но у него не выйдет, т.к. стоит защита на ячейках с формулами.

Как пользователю разрешить удалять строки?
Хочется сделать так чтобы пользователь не пользовался никакими кнопками VBA на листе для удаления. А делал это как обычно.
Возможно есть возможность отловить само событие удаления?

Сообщений: 60949 Регистрация: 14.09.2012
Контакты см. в профиле
24.06.2015 10:05:42

Цитата
Sergey_batishev написал: Как пользователю разрешить удалять строки?

Так разрешите ему это )
Прикрепленные файлы

  • Удаление строк.jpg (48.67 КБ)

Пользователь
Сообщений: 32 Регистрация: 02.02.2015
24.06.2015 10:20:17

Удалить строку не получится, если в ней есть хотя бы одна заблокированная ячейка.
Даже если поставить галочку «удаление строк»

Прикрепленные файлы

  • Безымянный.png (32.45 КБ)

Изменено: Sergey_batishev — 24.06.2015 10:22:05
Сообщений: 60949 Регистрация: 14.09.2012
Контакты см. в профиле
24.06.2015 10:33:52
Тогда, наверное, придётся макросом снимать/ставить защиту.
Пользователь
Сообщений: 32 Регистрация: 02.02.2015
24.06.2015 10:40:48

Ага.. это не проблема.
Просто хорошо было бы автоматизировать это так, чтобы пользователь работал как обычно, а макрос отлавливал событие удаления строки.
и на этот момент отключал защиту, а потом включал опять.
Что-то вроде:

Sub Worksheet_Change(ByVal Target As Range)

Только вот как поймать это событие удаления?
Пользователь
Сообщений: 5192 Регистрация: 16.01.2013
24.06.2015 11:04:37

а как обычно удаляют? через контекстное меню ячейки?
тогда добавить туда свой пункт меню — удалить строку(и)

Изменено: Слэн — 24.06.2015 11:05:41
Живи и дай жить..
Пользователь
Сообщений: 14615 Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
24.06.2015 13:38:23

Цитата
Sergey_batishev написал: а макрос отлавливал событие удаления строки

Нет такого события. И по факту удаление не происходит, т.к. защита раньше срабатывает. Поэтому единственный эстетичный вариант Вам уже подсказал Слэн.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы.

Пользователь
Сообщений: 32 Регистрация: 02.02.2015
03.07.2015 10:41:57

Всем спасибо, реализовал так как говорил Слэн и Prist.
Если кому интересно, вот код для вставки в любой модуль книги. У меня был пароль 1213.
PS. Код по сбросу контекстного меню одолжил у The_Prist из соседней темы.

Sub ToggleCaseMacro() Set shA = ActiveWorkbook.Sheets(1) shA.Unprotect 1213 Selection.EntireRow.Delete If shA.ProtectContents = False Then shA.Protect Password:=1213, UserInterfaceOnly:=True, DrawingObjects:=False, AllowFormattingColumns:=True, _ AllowInsertingRows:=True, AllowDeletingColumns:=False, AllowSorting:=False, AllowFiltering:=True End If End Sub Sub ToggleCaseMacro1() Set shA = ActiveWorkbook.Sheets(1) shA.Unprotect 1213 Selection.EntireRow.Delete If shA.ProtectContents = False Then shA.Protect Password:=1213, UserInterfaceOnly:=True, DrawingObjects:=False, AllowFormattingColumns:=True, _ AllowInsertingRows:=True, AllowDeletingColumns:=False, AllowSorting:=False, AllowFiltering:=True End If End Sub Sub DeleteFromCellMenu() Dim ContextMenu As CommandBar Dim ContextMenu1 As CommandBar Dim ContextMenu2 As CommandBar Dim ctrl As CommandBarControl Dim ctrl1 As CommandBarControl ' Устанавливаем контекстное меню для ячейки строки и столбца Set ContextMenu = Application.CommandBars("Cell") Set ContextMenu1 = Application.CommandBars("row") Set ContextMenu2 = Application.CommandBars("column") ' Удаляем тег "удалить строку(и)" если он уже существует For Each ctrl In ContextMenu.Controls If ctrl.Tag = "Удалить сроку(и)" Then ctrl.Delete End If Next ctrl ' Удаляем тег "удалить строку" если он уже существует For Each ctrl1 In ContextMenu1.Controls If ctrl1.Tag = "Удалить сроку" Then ctrl1.Delete End If Next ctrl1 'Удаляем стандартные кнопки удалить в контекстном меню On Error Resume Next ContextMenu.FindControl(ID:=292).Delete ContextMenu1.FindControl(ID:=293).Delete ContextMenu2.FindControl(ID:=294).Delete On Error GoTo 0 End Sub Sub Reset_All_Bars() Dim cmbComBar As CommandBar On Error Resume Next For Each cmbComBar In CommandBars cmbComBar.Reset: cmbComBar.Enabled = True Next cmbComBar End Sub

А это код для вставки в объект «ЭтаКнига». Макрос преобразовывает контекстное меню только для текущей книги, основываясь на событиях активации и деактивации книги.

Public Sub Workbook_Activate() Dim ContextMenu As CommandBar Dim ContextMenu1 As CommandBar ' Delete the controls first to avoid duplicates. Call DeleteFromCellMenu ' Set ContextMenu to the Cell context menu. Set ContextMenu = Application.CommandBars("Cell") ' Add one custom button to the Cell context menu. With ContextMenu.Controls.Add(Type:=msoControlButton, before:=7) .OnAction = "ToggleCaseMacro" .Caption = "Удалить сроку(и)" .Tag = "Удалить сроку(и)" End With Set ContextMenu1 = Application.CommandBars("row") With ContextMenu1.Controls.Add(Type:=msoControlButton, before:=7) .OnAction = "ToggleCaseMacro1" .Caption = "Удалить сроку" .Tag = "Удалить сроку" End With End Sub Public Sub Workbook_Deactivate() Call Reset_All_Bars End Sub

Как добавить или удалить строку или столбец в таблице

После создания таблицы Excel на листе можно легко добавлять и удалять строки и столбцы.

Чтобы добавить строки и столбцы в таблицу Excel, можно воспользоваться командой Размер таблицы.

  1. Щелкните в любом месте таблицы, чтобы отобразить вкладку Работа с таблицами.
  2. Выберите Конструктор >Размер таблицы. Использование команды
  3. Выделите весь диапазон ячеек, который нужно включить в таблицу, начиная с верхней левой ячейки. В приведенном ниже примере исходная таблица охватывает диапазон A1:C5. После изменения размера с добавлением двух столбцов и трех строк таблица будет включать в себя диапазон A1:E8. Изменение размера таблицы

Совет: Вы также можете нажать кнопку Свернуть диалоговое , чтобы временно скрыть диалоговое окно «Избавьтесь от таблицы», выбрать диапазон на этом сайте, а затем нажать кнопку Развернуть .

Другие способы добавления строк и столбцов

Чтобы добавить строку или столбец в таблицу, введите данные в ячейку, расположенную под последней строкой или справа от последнего столбца, вставьте скопированное значение в ячейку или добавьте новые строки или столбцы между существующими.

Ввод данных

  • Чтобы добавить строку внизу таблицы, начните вводить текст в ячейке под последней строкой. Таблица расширится, и в нее будет включена новая строка. Чтобы добавить столбец справа от таблицы, начните вводить текст в ячейку справа от последнего столбца.

В приведенном ниже примере добавления строки при вводе значения в ячейку A4 таблица расширяется за счет нее, а также смежной ячейки в столбце B.

Добавление строки путем ввода данных в первой строке под таблицей

В приведенном ниже примере добавления столбца при вводе значения в ячейку C2 таблица расширяется за счет столбца C. Ему присваивается имя «Кв3», так как Excel выявляет закономерность присвоения имен по заголовкам «Кв1» и «Кв2».

Добавление столбца путем ввода значения в ячейку справа от таблицы

Вставка данных

  • Чтобы добавить строку таким способом, вставьте данные в крайнюю левую ячейку под последней строкой таблицы. Чтобы добавить столбец, вставьте данные в ячейку справа от крайнего правого столбца таблицы.

Если в новой строке данных больше или меньше столбцов, чем в таблице, таблица расширится, включив в нее все ячейки в диапазоне. Если в таблице больше столбцов, чем в данных, лишние столбцы не становятся частью таблицы— для их расширения необходимо использовать команду «Увеличить».

В приведенном ниже примере добавления строк при вставке значений из диапазона A10:B12 в первую строку под таблицей (строка 5) она расширяется за счет вставленных данных.

Расширение таблицы при вставке данных под ее последней строкой

В приведенном ниже примере добавления столбцов при вставке значений из диапазона C7:C9 в первый столбец справа от таблицы (столбец C) она расширяется за счет вставленных данных, а столбцу присваивается заголовок «Кв3».

Расширение таблицы и добавление заголовка при вставке данных в столбцы

Добавление строки с помощью команды «Вставить»

  1. Чтобы вставить строку, выберите ячейку или строку (но не строку заголовков) и щелкните ее правой кнопкой мыши. Чтобы вставить столбец, выберите любую ячейку в таблице и щелкните ее правой кнопкой мыши.
  2. Наведите указатель мыши на пункт Вставить и выберите команду Строки таблицы выше или Столбцы таблицы слева, чтобы вставить новую строку или столбец соответственно.

Если активна ячейка в последней строке, можно выбрать команду Строки таблицы выше или Строки таблицы ниже.

В приведенном ниже примере новая строка будет вставлена над строкой 3.

Вставка строк таблицы выше

При добавлении столбцов, если выделена ячейка в крайнем правом столбце таблицы, можно выбрать команду Столбцы таблицы слева или Столбцы таблицы справа.

В приведенном ниже примере новый столбец будет вставлен слева от столбца 1.

Добавление столбца таблицы

Удаление строк и столбцов таблицы

  1. Выделите строки или столбцы таблицы, которые требуется удалить. Можно просто выделить одну или несколько ячеек в строках или столбцах таблицы, которые требуется удалить.
  2. На вкладке Главная в группе Ячейки, щелкните стрелку рядом с кнопкой Удалить, а затем выберите команду Удалить строки таблицы или Удалить столбцы таблицы. Вы также можете щелкнуть правой кнопкой мыши одну или несколько строк или столбцов, в меню ярлыка нажать кнопку Удалить, а затем — Столбцы таблицы или Строки таблицы. Можно также щелкнуть правой кнопкой мыши одну или несколько ячеек в строке или столбце таблицы, нажать кнопку Удалить ищелкнуть Строки таблицы или Столбцы таблицы.

Удаление одинаковых строк из таблицы

Дубликаты удаляются из таблицы также легко, как и из любых выбранных данных в приложении Excel.

  1. Щелкните любое место таблицы. Откроется окно Работа с таблицами и вкладка Конструктор.
  2. На вкладке Конструктор в группе Сервис выберите команду Удалить дубликаты.
  3. В диалоговом окне Удалить дубликаты в группе Столбцы выберите столбцы, содержащие дубликаты, которые требуется удалить. Можно также нажать кнопку Снять выделение и выбрать нужные столбцы или нажать кнопку Выделить все, чтобы выделить все столбцы.

Примечание: Дубликаты удаляются с листа. Если вы случайно удалили данные, которые вы хотите сохранить, вы можете восстановить их, нажав или CTRL+Z. Вы также можете использовать условное форматирование для выделения повторяющихся значений, прежде чем удалять их. Дополнительные сведения см. в статье Добавление, изменение и отмена условного форматирования.

Удаление пустых строк из таблицы

  1. Убедитесь, что активная ячейка находится в столбце таблицы.
  2. Щелкните стрелку в заглавной области столбца.
  3. Чтобы выполнить отбор пустых ячеек, в меню «Автофильтр» в верхней части списка значений снимите флажок (Выделить все), а в нижней части установите флажок (Пустые).

Примечание: Флажок (Пустые ячейки) можно установить только в случае, если диапазон ячеек или столбец таблицы содержит хотя бы одну пустую ячейку.

Таким же образом можно отфильтровать и удалить пустые строки. Дополнительные сведения о том, как отфильтровать пустые строки на листе, см. в статье Фильтрация данных в диапазоне или таблице.

  1. Вы выберите таблицу, а затем выберите конструктор > Таблица.
  2. При необходимости настройли диапазон ячеек, который содержит таблица, и выберите ОК.

Изменение размера диалогового окна

Важно: В другую строку нельзя перемещаться заглавные таблицы, и новый диапазон должен перекрывать исходный диапазон.

Дополнительные сведения

Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.

Почему не удаляется строка в excel функция удалить не активна

Привет! Я бы приложил проблемный файл, но он весит более 19 Мб, причем я удалил в нем все данные, сохранив форматирование ячеек.
Проблема в том, что в этом файле не удается удалить листы. Человек, который создал этот файл, защитных функций на него не накладывал. Кстати, защита листа неактивна тоже. Никто не сталкивался с такой проблемой?

Привет! Я бы приложил проблемный файл, но он весит более 19 Мб, причем я удалил в нем все данные, сохранив форматирование ячеек.
Проблема в том, что в этом файле не удается удалить листы. Человек, который создал этот файл, защитных функций на него не накладывал. Кстати, защита листа неактивна тоже. Никто не сталкивался с такой проблемой? Мурад

Сообщение Привет! Я бы приложил проблемный файл, но он весит более 19 Мб, причем я удалил в нем все данные, сохранив форматирование ячеек.
Проблема в том, что в этом файле не удается удалить листы. Человек, который создал этот файл, защитных функций на него не накладывал. Кстати, защита листа неактивна тоже. Никто не сталкивался с такой проблемой? Автор — Мурад
Дата добавления — 17.10.2014 в 16:12

Группа: Друзья
Ранг: Экселист
Сообщений: 8475
Замечаний: 0% ±

Excel 2010

Лично я не понял проблемы (сорри)
Создаете новую книгу, перемещаете в нее все листы и удаляете не нужные
(1 из 18) либо я все неправильно понял)

Лично я не понял проблемы (сорри)
Создаете новую книгу, перемещаете в нее все листы и удаляете не нужные
(1 из 18) либо я все неправильно понял) Nic70y

Сообщение Лично я не понял проблемы (сорри)
Создаете новую книгу, перемещаете в нее все листы и удаляете не нужные
(1 из 18) либо я все неправильно понял) Автор — Nic70y
Дата добавления — 17.10.2014 в 16:17

Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Замечаний: 0% ±

Excel 2007

Такую проблему я встречаю не в первый раз. Каждый раз копировать листы в другую книгу не выход. Где-то сидит защита на удаление листов, объединение ячеек, условное форматирование, форматирование как таблицу, опции вставки на ленте т.д.

Такую проблему я встречаю не в первый раз. Каждый раз копировать листы в другую книгу не выход. Где-то сидит защита на удаление листов, объединение ячеек, условное форматирование, форматирование как таблицу, опции вставки на ленте т.д. Мурад

Сообщение Такую проблему я встречаю не в первый раз. Каждый раз копировать листы в другую книгу не выход. Где-то сидит защита на удаление листов, объединение ячеек, условное форматирование, форматирование как таблицу, опции вставки на ленте т.д. Автор — Мурад
Дата добавления — 17.10.2014 в 16:34

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *