Почему не удаляется строка в 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, можно воспользоваться командой Размер таблицы.
- Щелкните в любом месте таблицы, чтобы отобразить вкладку Работа с таблицами.
- Выберите Конструктор >Размер таблицы.
- Выделите весь диапазон ячеек, который нужно включить в таблицу, начиная с верхней левой ячейки. В приведенном ниже примере исходная таблица охватывает диапазон A1:C5. После изменения размера с добавлением двух столбцов и трех строк таблица будет включать в себя диапазон A1:E8.
Совет: Вы также можете нажать кнопку Свернуть диалоговое , чтобы временно скрыть диалоговое окно «Избавьтесь от таблицы», выбрать диапазон на этом сайте, а затем нажать кнопку Развернуть .
Другие способы добавления строк и столбцов
Чтобы добавить строку или столбец в таблицу, введите данные в ячейку, расположенную под последней строкой или справа от последнего столбца, вставьте скопированное значение в ячейку или добавьте новые строки или столбцы между существующими.
Ввод данных
- Чтобы добавить строку внизу таблицы, начните вводить текст в ячейке под последней строкой. Таблица расширится, и в нее будет включена новая строка. Чтобы добавить столбец справа от таблицы, начните вводить текст в ячейку справа от последнего столбца.
В приведенном ниже примере добавления строки при вводе значения в ячейку A4 таблица расширяется за счет нее, а также смежной ячейки в столбце B.

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

Вставка данных
- Чтобы добавить строку таким способом, вставьте данные в крайнюю левую ячейку под последней строкой таблицы. Чтобы добавить столбец, вставьте данные в ячейку справа от крайнего правого столбца таблицы.
Если в новой строке данных больше или меньше столбцов, чем в таблице, таблица расширится, включив в нее все ячейки в диапазоне. Если в таблице больше столбцов, чем в данных, лишние столбцы не становятся частью таблицы— для их расширения необходимо использовать команду «Увеличить».
В приведенном ниже примере добавления строк при вставке значений из диапазона A10:B12 в первую строку под таблицей (строка 5) она расширяется за счет вставленных данных.

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

Добавление строки с помощью команды «Вставить»
- Чтобы вставить строку, выберите ячейку или строку (но не строку заголовков) и щелкните ее правой кнопкой мыши. Чтобы вставить столбец, выберите любую ячейку в таблице и щелкните ее правой кнопкой мыши.
- Наведите указатель мыши на пункт Вставить и выберите команду Строки таблицы выше или Столбцы таблицы слева, чтобы вставить новую строку или столбец соответственно.
Если активна ячейка в последней строке, можно выбрать команду Строки таблицы выше или Строки таблицы ниже.
В приведенном ниже примере новая строка будет вставлена над строкой 3.

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

Удаление строк и столбцов таблицы
- Выделите строки или столбцы таблицы, которые требуется удалить. Можно просто выделить одну или несколько ячеек в строках или столбцах таблицы, которые требуется удалить.
- На вкладке Главная в группе Ячейки, щелкните стрелку рядом с кнопкой Удалить, а затем выберите команду Удалить строки таблицы или Удалить столбцы таблицы. Вы также можете щелкнуть правой кнопкой мыши одну или несколько строк или столбцов, в меню ярлыка нажать кнопку Удалить, а затем — Столбцы таблицы или Строки таблицы. Можно также щелкнуть правой кнопкой мыши одну или несколько ячеек в строке или столбце таблицы, нажать кнопку Удалить ищелкнуть Строки таблицы или Столбцы таблицы.
Удаление одинаковых строк из таблицы
Дубликаты удаляются из таблицы также легко, как и из любых выбранных данных в приложении Excel.
- Щелкните любое место таблицы. Откроется окно Работа с таблицами и вкладка Конструктор.
- На вкладке Конструктор в группе Сервис выберите команду Удалить дубликаты.
- В диалоговом окне Удалить дубликаты в группе Столбцы выберите столбцы, содержащие дубликаты, которые требуется удалить. Можно также нажать кнопку Снять выделение и выбрать нужные столбцы или нажать кнопку Выделить все, чтобы выделить все столбцы.
Примечание: Дубликаты удаляются с листа. Если вы случайно удалили данные, которые вы хотите сохранить, вы можете восстановить их, нажав или CTRL+Z. Вы также можете использовать условное форматирование для выделения повторяющихся значений, прежде чем удалять их. Дополнительные сведения см. в статье Добавление, изменение и отмена условного форматирования.
Удаление пустых строк из таблицы
- Убедитесь, что активная ячейка находится в столбце таблицы.
- Щелкните стрелку в заглавной области столбца.
- Чтобы выполнить отбор пустых ячеек, в меню «Автофильтр» в верхней части списка значений снимите флажок (Выделить все), а в нижней части установите флажок (Пустые).
Примечание: Флажок (Пустые ячейки) можно установить только в случае, если диапазон ячеек или столбец таблицы содержит хотя бы одну пустую ячейку.
Таким же образом можно отфильтровать и удалить пустые строки. Дополнительные сведения о том, как отфильтровать пустые строки на листе, см. в статье Фильтрация данных в диапазоне или таблице.
- Вы выберите таблицу, а затем выберите конструктор > Таблица.
- При необходимости настройли диапазон ячеек, который содержит таблица, и выберите ОК.
Важно: В другую строку нельзя перемещаться заглавные таблицы, и новый диапазон должен перекрывать исходный диапазон.
Дополнительные сведения
Вы всегда можете задать вопрос эксперту в 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
