Excel не дает удалить листы

как удалить листы в книге, если опция удаления неактивна

Мурад

Дата: Пятница, 17.10.2014, 16:12 |
Сообщение № 1

Группа: Проверенные

Ранг: Ветеран

Сообщений: 509


Репутация:

17

±

Замечаний:
0% ±


Excel 2007

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

 

Ответить

Nic70y

Дата: Пятница, 17.10.2014, 16:17 |
Сообщение № 2

Группа: Друзья

Ранг: Экселист

Сообщений: 8132


Репутация:

1998

±

Замечаний:
0% ±


Excel 2010

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


ЮMoney 41001841029809

 

Ответить

Мурад

Дата: Пятница, 17.10.2014, 16:34 |
Сообщение № 3

Группа: Проверенные

Ранг: Ветеран

Сообщений: 509


Репутация:

17

±

Замечаний:
0% ±


Excel 2007

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

 

Ответить

Nic70y

Дата: Пятница, 17.10.2014, 16:36 |
Сообщение № 4

Группа: Друзья

Ранг: Экселист

Сообщений: 8132


Репутация:

1998

±

Замечаний:
0% ±


Excel 2010

Значит ее кто-то установил! К нему обращаться не пробовали? Может это было сделано специально…


ЮMoney 41001841029809

 

Ответить

Russel

Дата: Пятница, 17.10.2014, 17:08 |
Сообщение № 5

Группа: Друзья

Ранг: Старожил

Сообщений: 1392


Репутация:

318

±

Замечаний:
0% ±


Excel 2010

Общий доступ к книге открыт?


QIWI 9173973973

 

Ответить

Мурад

Дата: Пятница, 17.10.2014, 17:39 |
Сообщение № 6

Группа: Проверенные

Ранг: Ветеран

Сообщений: 509


Репутация:

17

±

Замечаний:
0% ±


Excel 2007

Спасибо, проблема решена! Был открыт совместный доступ, хотя мой компьютер не в сети) Russel, у тебя чутье)

 

Ответить

В процессе работы с документами в Эксель пользователи могут создавать новые листы, что в ряде ситуаций крайне необходимо, чтобы эффективно решить поставленную задачу. Однако часто появляется нужда в удалении лишних листов с ненужной информацией, поскольку они занимают лишнее место в строке состояния редактора, к примеру, когда их чересчур много и требуется упростить переключение между ними. В редакторе возможно удалить как 1 страницу, так и более за раз. В статье рассматриваются способы, с помощью которых возможно осуществить данную процедуру.

Содержание

  1. Удаление листа в Excel
  2. Удаление листа через контекстное меню
  3. Удаление через инструменты программы
  4. Удаление сразу нескольких листов
  5. Восстановление удаленного листа
  6. Удаление скрытого листа
  7. Заключение

Удаление листа в Excel

В книге Excel есть опция создания нескольких страниц. Более того, исходные параметры выставляются таким образом, что документ в процессе создания уже включает в себя 3 листа. Однако бывают ситуации, когда пользователю требуется убрать ряд страниц с информацией либо пустых, поскольку они мешают работе. Это возможно осуществить несколькими методами.

Удаление листа через контекстное меню

Использование контекстного меню является самым распространенным и простым способом выполнения процедуры удаления, выполняемым фактически в 2 щелчка:

  1. В этих целях используется контекстное меню, вызываемое кликом ПКМ по той странице, которая подлежит удалению.
  2. В появившемся окне выбирается «Удалить».
    3-sposoba-udaleniya-listov-v-excel-kontekstnoe-menyu-instrumenty-programmy-srazu-neskolko-listov
    1
  3. После этого ненужная страница будет окончательно удалена из книги.

Удаление через инструменты программы

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

  1. Изначально выбирается лист, подлежащий удалению.
  2. Затем следует перейти в меню «Главная», кликнуть блок «Ячейки», в открывшемся перечне нажимается небольшая стрелка возле клавиши «Удалить».
    3-sposoba-udaleniya-listov-v-excel-kontekstnoe-menyu-instrumenty-programmy-srazu-neskolko-listov
    2
  3. Из всплывающего меню выбирается «Удалить лист».
    3-sposoba-udaleniya-listov-v-excel-kontekstnoe-menyu-instrumenty-programmy-srazu-neskolko-listov
    3
  4. Указанная страница будет удалена из книги.

Важно! Когда окно с программой слишком растянуто в ширину, в меню «Главная» отображается клавиша «Удалить» без надобности заранее нажимать на «Ячейки».

Удаление сразу нескольких листов

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

  1. Когда лишние страницы располагаются подряд, их возможно выделить таким образом: Кликается 1 лист, далее нажимается и удерживается кнопка «Shift» и выделяется последняя страница, после этого можно отпустить кнопку. Выделение этих листов может происходить в обратном порядке – от крайнего к начальному.
    3-sposoba-udaleniya-listov-v-excel-kontekstnoe-menyu-instrumenty-programmy-srazu-neskolko-listov
    4
  2. В ситуации, если удаляемые страницы располагаются не подряд, они выделяются несколько иначе. Зажимается кнопка «Ctrl», после кликом левой клавиши мыши выбираются все необходимые листы, затем кнопка отпускается.
    3-sposoba-udaleniya-listov-v-excel-kontekstnoe-menyu-instrumenty-programmy-srazu-neskolko-listov
    5
  3. Когда ненужные страницы были выделены, возможно начать сам процесс удаления каким-либо из вышеуказанных способов.

Восстановление удаленного листа

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

Когда совершенная ошибка была вовремя обнаружена (перед тем, как сохранить документ с произведенными изменениями), все можно исправить. Необходимо закончить работу с редактором, нажать на клавишу с крестиком справа вверху документа. В появившемся диалоговом окне выбирается опция «Не сохранять». После следующего открытия документа все страницы будут на месте.

3-sposoba-udaleniya-listov-v-excel-kontekstnoe-menyu-instrumenty-programmy-srazu-neskolko-listov

6

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

Если ошибка обнаружена, уже когда файл сохранен, то вероятность достижения положительного результата еще ниже, однако и в подобной ситуации существует шанс на успех.

  1. К примеру, в редакторе «Эксель 2010» и в более поздних версиях возможно открыть «Файл» в основном меню и выбрать «Сведения».
  2. Внизу посредине монитора можно будет увидеть блок «Версии», в котором содержатся различные версии книги. Они находятся в нем ввиду автосохранения, осуществляемого редактором по умолчанию каждые 10 минут (если пользователь не отключил этот пункт).
    3-sposoba-udaleniya-listov-v-excel-kontekstnoe-menyu-instrumenty-programmy-srazu-neskolko-listov
    7
  3. После этого, в перечне версий необходимо найти самую позднюю по дате, и нажать на нее.
  4. В открывшемся окне можно увидеть сохраненную книгу.
  5. Для завершения процедуры восстановления нажимается «Восстановить» над таблицей.
  6. Редактор предлагает произвести замену сохраненного пользователем раньше документа на эту версию. Если это нужный вариант, то нужно кликнуть «ОК». Когда же необходимо сохранить каждый вариант, требуется дать файлу другое название.
    3-sposoba-udaleniya-listov-v-excel-kontekstnoe-menyu-instrumenty-programmy-srazu-neskolko-listov
    8

Наиболее неприятным развитием событий может стать вариант, когда документ был не сохранен и закрыт. Когда пользователь обнаружил пропажу при повторном открытии книги, шанс восстановить документ крайне низок. Можно попробовать повторить действия из прошлого примера и, открыв окно «Управление версиями», выбрать «Восстановить несохраненные книги». Вполне возможно, что в открывшемся перечне будет найден требуемый файл.

Удаление скрытого листа

В завершение следует сказать о том, как легче всего удалить лист, который скрыт от посторонних глаз. Изначально его следует отобразить, для чего нажимается правая клавиша мыши на любом ярлыке и задействуется опция «Отобразить».

3-sposoba-udaleniya-listov-v-excel-kontekstnoe-menyu-instrumenty-programmy-srazu-neskolko-listov

9

В окне выбирается требуемый лист, нажимается «ОК». Последующий процесс происходит аналогично.

3-sposoba-udaleniya-listov-v-excel-kontekstnoe-menyu-instrumenty-programmy-srazu-neskolko-listov

10

Заключение

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

Оцените качество статьи. Нам важно ваше мнение:

Содержание

  • Процедура удаления
    • Способ 1: удаление через контекстное меню
    • Способ 2: удаление инструментами на ленте
    • Способ 3: удаление нескольких элементов
  • Вопросы и ответы

Удаление листа в Microsoft Excel

Как известно, в книге Эксель имеется возможность создания нескольких листов. К тому же, настройки по умолчанию выставлены так, что документ при создании уже имеет три элемента. Но, бывают случаи, что пользователям нужно удалить некоторые листы с данными или пустые, чтобы они не мешали им. Посмотрим, как это можно сделать различными способами.

Процедура удаления

В программе Excel существует возможность удаления как одного листа, так и нескольких. Рассмотрим, как это выполняется на практике.

Способ 1: удаление через контекстное меню

Самый простой и интуитивно понятный способ провести данную процедуру – это воспользоваться возможностью, которую предоставляет контекстное меню. Делаем клик правой кнопкой мыши по тому листу, который больше не нужен. В активировавшемся контекстном списке выбираем пункт «Удалить».

Удаление листа в программе Microsoft Excel

После этого действия лист пропадёт из списка элементов над строкой состояния.

Способ 2: удаление инструментами на ленте

Есть возможность убрать не нужный элемент с помощью инструментов, расположенных на ленте.

  1. Переходим в лист, который хотим убрать.
  2. Переход в лист в программе Microsoft Excel

  3. Во время нахождения во вкладке «Главная» жмем на кнопку на ленте «Удалить» в блоке инструментов «Ячейки». В появившемся меню кликаем на пиктограмму в виде треугольника около кнопки «Удалить». В раскрывшемся меню останавливаем свой выбор на пункте «Удалить лист».

Удаление листа через ленту в Microsoft Excel

Активный лист будет тут же удален.

Способ 3: удаление нескольких элементов

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

  1. Для выделения расположенных по порядку элементов зажмите клавишу Shift. Затем кликните по первому элементу, а потом по последнему, держа кнопку зажатой.
  2. Выбор последовательных листов в Microsoft Excel

  3. Если те элементы, которые вы хотите убрать находятся не вместе, а разбросаны, то в таком случае нужно зажать кнопку Ctrl. Затем кликнуть по каждому наименованию листов, которые нужно будет удалить.

Выбор отдельных листов в Microsoft Excel

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

Урок: Как добавить лист в Экселе

Lumpics.ru

Как видим, убрать ненужные листы в программе Эксель достаточно просто. При желании имеется даже возможность удаления нескольких элементов одновременно.

Еще статьи по данной теме:

Помогла ли Вам статья?

Во время работы с документами в Excel у пользователей есть возможность создавать новые листы, что в некоторых случаях просто необходимо, чтобы успешно справиться с поставленной задачей. Но нередко возникает необходимость в удалении определенных листов с ненужными данными (или пустые листы), чтобы они не занимали лишнего места в нижней строке состояния программы, например, когда листов слишком много и нужно облегчить переключение между ними.

В программе Эксель можно удалить как один лист, так и сразу несколько за раз. Давайте разберем, как это можно сделать разными методами.

Содержание

  • Удаление листа через контекстное меню
  • Удаление через инструменты программы
  • Удаление сразу нескольких листов
  • Заключение

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

  1. Для этого воспользуемся контекстными меню, которое вызывается щелчком правой кнопки мыши именно по тому листу, который мы хотим удалить.
  2. В открывшемся меню выбираем “Удалить”.Удаление листа через контекстное меню
  3. Вот и все, ненужный лист был безвозвратно удален из книги.

Удаление через инструменты программы

Данный метод не так распространен, но все же, давайте его тоже попробуем применить.

  1. Для начала нужно выбрать лист, который нужно удалить.
  2. Далее переходим во вкладку “Главная”, щелкаем по блоку инструментов “Ячейки”, в раскрывшемся списке нажимаем на небольшую стрелку вниз рядом с кнопкой “Удалить”.Удаление листов в Excel (3 способа)
  3. Выбираем из открывшегося списка пункт “Удалить лист”.Удаление через инструменты программы
  4.  Выбранный нами лист будет удален из документа.

Примечание: если окно с программой достаточно растянуто по ширине, во вкладке “Главная” сразу будет отображаться кнопка “Удалить”, без необходимости предварительно нажимать на инструмент “Ячейки”.

Удаление листов в Excel (3 способа)

Удаление сразу нескольких листов

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

  1. Если ненужные листы расположены подряд, их можно выделить следующим образом. Щелкните по первому листу, затем нажмите клавишу Shift, не отпуская ее, кликните по последнему листу, и потом можно отпустить клавишу. Речь, конечно же, идет про первый и последний листы из удаляемых. Выделять можно и в обратном порядке – от последнего к первому.Удаление сразу нескольких листов
  2. В случаях, когда удаляемые листы расположены не подряд, их выделение происходит несколько иным способом. Зажимаем клавишу Ctrl, далее щелчком левой кнопки мыши выбираем все нужные листы, после чего отпускаем клавишу.Удаление сразу нескольких листов
  3. Теперь, после того, как мы выделили лишние листы, можно приступить к их удалению любым из методов, которые были описаны выше.

Заключение

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

Прочитав эту статью на сайте thegoodanswer.ru до конца Вы сможете узнать несколько достаточно простых способов о том, как удалить лист в программе Эксель.

Как удалить лист в Эксель?

Вообще, как уже было написано выше в этой программе Вы можете удалить как один лист, так и несколько листов одновременно несколькими способами.

Как удалить лист в Эксель (способ №1)

Убрать лист в программе Эксель Вы можете с помощью контекстного меню. 

  1. Для того, чтобы удалить лист этим способом Вам будет нужно нажать правой кнопкой компьютерной мыши на лист, который Вам нужно удалить.
  2. Далее, перед Вами откроется контекстное меню. 
  3. В этом открывшемся меню Вам будет нужно нажать на «Удалить».
  4. Всё, и после этого, лист в программе Эксель будет удалён.

Как удалить несколько листов в программе Excel одновременно?

Вообще, как уже было написано выше в программе Эксель Вы можете удалить не только один лист, но и несколько листов одновременно. Как же это сделать?

  1. Для того, чтобы убрать несколько листов в Эксель одновременно с помощью этого способа Вам будет нужно выделить листы, которые Вам необходимо удалить.
  2. Для того, чтобы выделить листы, которые находятся не близко Вам будет нужно нажать на клавиатуре на клавишу «Ctrl». И, удерживая эту клавишу, выбрать листы, которые Вам нужно удалить.
  3. После того, как Вы выделите листы, нажмите на них правой кнопкой компьютерной мыши.
  4. Затем, перед Вами откроется контекстное меню. В этом меню Вам будет нужно нажать на «Удалить».
  5. После этого, несколько листов в программе Эксель будут удалены.

Как удалить лист в Excel (способ №2)

  1. Для того, чтобы удалить лист в программе Excel с помощью этого способа Вам будет нужно выбрать лист, который Вам нужно удалить.
  2. Затем, Вам будет нужно нажать на кнопку «Ячейки» на вкладке «Главная».
  3. Далее, Вам будет нужно нажать на стрелку вниз, которая находится рядом с кнопкой «Удалить»
  4. В открывшемся перед Вами списке Вам будет нужно нажать на «Удалить лист».
  5. После этого, лист в программе Excel будет удалён.

И ещё, в том случае, если окно программы Эксель будет достаточно растянуто по ширине, то на вкладке «Главная» будет кнопка «Удалить». И Вы сможете сразу нажать на кнопку «Удалить». То есть Вам не нужно будет нажимать на кнопку «Ячейки».

Заключение

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

И ещё, в том случае, если Вам было интересно читать эту статью о том, (как удалить лист в программе Эксель?), тогда Вам может быть интересно узнать о том, что на этом сайте достаточно много интересного. Например, здесь есть статьи о таких программах, как Excel, Word, а также PowerPoint.


Форум программистов Vingrad

Модераторы: MetalFan

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> Не удается удалить лист из книги Excel 

V

   

Опции темы

Mr_Devil
Дата 5.1.2010, 17:34 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 23
Регистрация: 22.3.2007

Репутация: нет
Всего: нет

Никак не могу удалить лишние листы из книги. Везде пишут, что так должно работать, но оно не работает smile
Если включить видимость приложения Excel, то оно спрашивает действительно ли я хочу удалить лист (хотя предупреждения отключены). Если ответить «Да», лист удаляется. А если видимость Excel не включать,то новый лист в книге остается.
Excel 2003

Делаю так:

Код

function ProcessPrice(Price_File_Name: string): boolean;
var
 EA1: TExcelApplication;
 EWB1: TExcelWorkbook;
 EWS1: TExcelWorksheet;
 i,j,k,L: integer;    // счетчики
begin
 EWS1:=TExcelWorksheet.Create(nil);
 EWS1.ConnectKind:=ckAttachToInterface;
 EWB1:=TExcelWorkbook.Create(nil);
 EWB1.ConnectKind:=ckAttachToInterface;
 L:=LOCALE_USER_DEFAULT;
 EA1:=TExcelApplication.Create(nil);
 EA1.ConnectKind:=ckNewInstance;
 EA1.AutoQuit:=True;
 EA1.DisplayAlerts[L]:=False;  // отключаем предупреждения
 EA1.Visible[L]:=False;
 EA1.Connect;
 try
   EWB1.ConnectTo(EA1.Workbooks.Open(Price_File_Name,// Filename: WideString;
     2, // UpdateLinks: OleVariant; 2 - never update
     False, // ReadOnly: OleVariant;
     EmptyParam, // Format: OleVariant;
     EmptyParam, // Password: OleVariant;
     EmptyParam, // WriteResPassword: OleVariant;
     EmptyParam, // IgnoreReadOnlyRecommended: OleVariant;
     EmptyParam, // Origin: OleVariant;
     EmptyParam, // Delimiter: OleVariant;
     EmptyParam, // Editable: OleVariant;
     EmptyParam, // Notify: OleVariant;
     EmptyParam, // Converter: OleVariant;
     False, // AddToMru: OleVariant;
     EmptyParam, // Local: OleVariant;
     EmptyParam, // CorruptLoad: OleVariant;
     L));
 except
...
 end;
 EA1.ActiveWorkbook.Sheets.Add(EmptyParam,EmptyParam,1,EmptyParam,L);  // новый лист добавляется, но не удаляется.
//  (EA1.ActiveWorkbook.Sheets[1] as _Worksheet).Name:='Listeg3';
 (EA1.ActiveWorkbook.Sheets[1] as _Worksheet).Delete(L);  // ВОТ ЗДЕСЬ НИЧЕГО НЕ ПРОИСХОДИТ
//  (EA1.ActiveWorkbook.Sheets[4] as _Worksheet).Delete(L);
// закрываем иксель
 EA1.ActiveWorkbook.Close(xlSaveChanges,EmptyParam,EmptyParam,L);
 EA1.Application.Quit;
 EWS1.Free;
 EWB1.Free;
 EA1.Free;
 Result:=True;
end;

PM MAIL ICQ   Вверх
Данкинг
Дата 5.1.2010, 17:48 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 5
Всего: 130

А почто код у тебя такой длинный и страшный? smile

Код

procedure TForm1.FormCreate(Sender: TObject);
var ex:variant;
begin
ex:=createoleobject('excel.application');
ex.visible:=false;
ex.DisplayAlerts:=False;
ex.Workbooks.open('I:Musorкнига1.xls');
ex.ActiveWorkbook.Sheets[2].Delete;
Ex.ActiveWorkbook.SaveAs('I:Musorкнига1.xls');
ex.application.quit;
ex:=unassigned;
end;

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
Mr_Devil
Дата 5.1.2010, 18:34 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 23
Регистрация: 22.3.2007

Репутация: нет
Всего: нет

Цитата(Данкинг @ 5.1.2010,  17:48)
А почто код у тебя такой длинный и страшный? smile 

Делал как здесь написано: http://forum.vingrad.ru/forum/topic-84634.html  smile 

PM MAIL ICQ   Вверх
Данкинг
Дата 5.1.2010, 18:57 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 5
Всего: 130

Mr_Devil, делай, как здесь написано. smile Я с WordApplication (как сервером) вообще никогда не работал.

Это сообщение отредактировал(а) Данкинг — 5.1.2010, 18:58

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
Mr_Devil
Дата 5.1.2010, 19:11 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 23
Регистрация: 22.3.2007

Репутация: нет
Всего: нет

Делаю так:

Код

function ProcessElcoPrice(Price_File_Name: string): boolean;
var
  E:variant;
 begin
  E:=CreateOleObject('Excel.Application'); // создание OLE-объекта
  E.DisplayAlerts:=False;  // отключение сообщений
  E.Visible:=False;
  E.Workbooks.open(Price_File_Name);
  E.ActiveWorkbook.Sheets[1].Delete;
  E.ActiveWorkbook.SaveAs(Price_File_Name);
  E.Application.Quit;
  E:=Unassigned;
end;

Компилятор косо смотрит на «Delete» (Undeclared identifier ‘Delete’), но код переваривает. В итоге лист как был, так и остался. + выдается запрос на перезапись файла xls.

Добавлено через 1 минуту и 2 секунды

Цитата(Данкинг @ 5.1.2010,  18:57)
Mr_Devil, делай, как здесь написано. smile Я с WordApplication (как сервером) вообще никогда не работал.

Там и про Excel написано.

PM MAIL ICQ   Вверх
Данкинг
Дата 5.1.2010, 19:54 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 5
Всего: 130

Не знаю тогда: у меня этот код рабочий. smile Писал его в D7, Excel 2003.

Цитата(Mr_Devil @  5.1.2010,  19:11 Найти цитируемый пост)
Там и про Excel написано. 

Ну да, я его тоже имел в виду. smile

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
Mr_Devil
Дата 5.1.2010, 20:01 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 23
Регистрация: 22.3.2007

Репутация: нет
Всего: нет

Сделал новый проект.

Код
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj, StdCtrls;

type
  TForm3 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
var
  E:Variant;
begin
  E:=CreateOleObject('Excel.Application'); // создание OLE-объекта
  E.DisplayAlerts:=False;  // отключение сообщений
  E.Visible:=False;
  E.Workbooks.open('D:StockStatus.xls');
  E.ActiveWorkbook.Sheets[1].Delete;
  E.ActiveWorkbook.SaveAs('D:StockStatus.xls');
  E.Application.Quit;
  E:=Unassigned;
end;

end.

результат тот же :(
Excel2003, BDS 2006  smile 

PM MAIL ICQ   Вверх
Данкинг
Дата 5.1.2010, 20:36 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 5
Всего: 130

Цитата(Mr_Devil @  5.1.2010,  20:01 Найти цитируемый пост)
BDS 2006 

У меня студия установлена, но без Дельфи, только Билдер и С#, поэтому в ней проверить не могу. smile Вот проект в D7, попробуй его запустить (только путь к XLS изменить не забудь). Для верности прикладываю и файл XLS, из которого у меня всё отлично удаляется. smile

Присоединённый файл ( Кол-во скачиваний: 8 )

Присоединённый файл
 test2.rar 170,58 Kb

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
Mr_Devil
Дата 5.1.2010, 20:46 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 23
Регистрация: 22.3.2007

Репутация: нет
Всего: нет

Млин :( поставил D7… все тоже самое.

Добавлено через 1 минуту и 24 секунды
щас попробую твой файл

PM MAIL ICQ   Вверх
Mr_Devil
Дата 5.1.2010, 21:04 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

Профиль
Группа: Участник
Сообщений: 23
Регистрация: 22.3.2007

Репутация: нет
Всего: нет

Млин  smile 
Дело оказалось в файле xls. Он какой-то хитрый. Там присутствуют макросы и из него даже твой проект не может удалить лист, более того при сохранении он (Excel) спрашивает заменить ли файл. С твоим файлом (Книга1) все отлично работает (и мой проект тоже) и никаких вопросов не задает, даже после добавления в файл макроса. Попробовал сам сделать своим Excel’ем файл (и даже с макросом) все отлично работает.
Придется, видимо, копировать нужный лист в новую книгу и заменять потом старый файл.

Спасибо smile

PM MAIL ICQ   Вверх
Данкинг
Дата 5.1.2010, 21:04 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 5
Всего: 130

Цитата(Mr_Devil @  5.1.2010,  20:46 Найти цитируемый пост)
Млин :( поставил D7… все тоже самое.

Думаю, тут какая-то проблема с офисом, а не с Дельфи.

Добавлено через 1 минуту и 1 секунду

Цитата(Mr_Devil @  5.1.2010,  21:04 Найти цитируемый пост)
Дело оказалось в файле xls. 

Вот и я про то же. Excel — штука часто непредсказуемая. smile

Это сообщение отредактировал(а) Данкинг — 5.1.2010, 21:04

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх



















Ответ в темуСоздание новой темы
Создание опроса
Правила форума «Delphi: ActiveX/СОМ/CORBA»

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) — крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »

Содержание:

  1. Удаление листов с помощью параметров правой кнопки мыши
  2. Сочетания клавиш для удаления рабочих листов
  3. Гибридная комбинация клавиш для удаления листа
  4. Обычное сочетание клавиш для удаления листа
  5. Устаревшее сочетание клавиш для удаления листов
  6. Удаление ActiveSheet с помощью VBA
  7. Удаление листа без отображения запроса на подтверждение
  8. Удаление листа по имени (если он существует) с помощью VBA
  9. Удаление всех листов, кроме активного листа, с помощью VBA
  10. Удалить все листы с определенной текстовой строкой в ​​имени

При работе с Excel вы проводите большую часть своего времени на листе (который представляет собой область, в которой находятся все ячейки и все, что там происходит).

Эффективная работа с Excel также означает, что вам придется работать с несколькими листами в одной книге.

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

В этом руководстве по Excel я покажу вам, как быстро удалить листы в Excel. Я бы рассмотрел несколько методов, таких как использование сочетаний клавиш, параметры на ленте и VBA для удаления листов в Excel.

Примечание. В этом руководстве я буду использовать слова «лист» и «лист» как синонимы. Но чтобы сказать вам разницу, листы будут включать в себя рабочие листы, а также листы диаграмм, но поскольку листы диаграмм не так широко используются, всякий раз, когда я использую слово лист, рассматривайте его как рабочий лист.

Удаление листов с помощью параметров правой кнопки мыши

Самый простой способ удалить рабочий лист в Excel — использовать эту простую технику двойного щелчка мыши.

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

Ниже приведены шаги для этого:

  1. Щелкните правой кнопкой мыши лист, который вы хотите удалить.
  2. Нажмите на опцию удаления
  3. В появившейся подсказке нажмите кнопку Удалить.

Вы также можете использовать описанную выше технику для листов, которые даже не являются активными. Например, если я сейчас нахожусь на Sheet1 и хочу удалить Shee3, я могу просто щелкнуть правой кнопкой мыши Sheet3 и удалить его.

Вы также можете использовать ту же технику для удалить сразу несколько листов.

Например, если я хочу удалить Sheet2 и Sheet3 за один раз, я могу удерживать контрольную клавишу и нажимать Sheet2 и Sheet3 один за другим (при этом все еще удерживая контрольную клавишу).

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

Помните, что вы не можете удалить все листы в книге в Excel. в книге всегда должен быть хотя бы один лист. если вы попытаетесь удалить все рабочие листы (или единственный активный лист), вы увидите сообщение о том, что вам не разрешено это делать

Сочетания клавиш для удаления рабочих листов

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

Я говорю «два с половиной», потому что в одном из сочетаний клавиш он использует мышь и клавиатуру (и это все еще более быстрый способ сделать это).

Гибридная комбинация клавиш для удаления листа

Щелкните правой кнопкой мыши + D
Чтобы удалить выбранный рабочий лист или рабочие листы, щелкните правой кнопкой мыши, а затем нажмите клавишу D на клавиатуре.

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

Обычное сочетание клавиш для удаления листа

ALT + H + D + S
Если вы предпочитаете отказаться от мыши и использовать только клавиатуру, указанное выше сочетание клавиш удалит активный лист или выбранные листы.

Вам нужно нажимать эти клавиши последовательно (т. Е. Одну за другой).

Хотя это может выглядеть как немного более длинное сочетание клавиш, как только вы привыкнете к нему, оно будет таким же быстрым, как и любой другой метод, описанный в этом руководстве.

Устаревшее сочетание клавиш для удаления листов

Как и у всех остальных, у Excel тоже есть прошлое, и оно не такое уж красивое. Я говорю об эпохе до-ленточного стиля.

По соображениям совместимости Excel по-прежнему позволяет некоторым из этих старых сочетаний клавиш работать в более новых версиях. и во многих случаях эти ранние ярлыки короче и лучше.

К счастью, есть устаревшее сочетание клавиш, которое работает для удаления листов в Excel.
ALT + E + L

Удаление ActiveSheet с помощью VBA

Когда дело доходит до удаления одного листа или нескольких рабочих листов, лучше использовать вышеупомянутые методы.

Хотя VBA может автоматизировать процесс, он полезен, когда вам приходится повторять задачу несколько раз.

Как вы увидите, с помощью VBA вы можете намного больше, когда дело доходит до удаления листов в Excel.

Итак, я расскажу вам о более сложных случаях использования, но перед этим давайте посмотрим, как просто удалить активный рабочий лист с помощью VBA.

Ниже приведен код VBA, который удалит активный лист:
Sub DeleteSheet () ActiveSheet.Delete End Sub
Если вы используете его в непосредственном окне, вы можете просто использовать следующую строку:
ActiveSheet.Delete
Когда вы используете приведенный выше код для удаления активного листа, Excel покажет вам приглашение, в котором вам нужно будет нажать кнопку удаления, чтобы подтвердить действие.

Удаление листа без отображения запроса на подтверждение

Окно сообщения с запросом подтверждения — это полезная функция, которая гарантирует, что у вас есть возможность отменить удаление листа в случае, если вы случайно / ошибочно запустили код.

Но если вы уже знаете, что делаете, это сообщение может сильно раздражать.

Итак, вот код VBA, который гарантирует, что листы удалены, но вы не видите окно с запросом подтверждения.
Sub DeleteSheet () Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End Sub
В приведенном выше коде я установил для свойства Application.DisplayAlerts значение false, что означает, что Excel не будет показывать вам какие-либо предупреждения на дисплее во время выполнения кода.

Также очень важно убедиться, что вы вернули его к истине в конце кода, чтобы восстановить функциональность (как вы можете видеть, что я сделал в приведенном выше коде).

Внимание! Если для свойства Application.DisplayAlerts установлено значение false, Excel просто удалит рабочий лист, и восстановить его будет невозможно. поэтому я советую вам сделать резервную копию, прежде чем использовать такой код.

Удаление листа по имени (если он существует) с помощью VBA

VBA позволяет автоматизировать процесс удаления определенного листа (на нескольких листах) на основе имени листа.

Например, если у вас есть рабочий лист с названием «Продажи», вы можете использовать приведенный ниже код, чтобы удалить его:
Sub DeleteSheetByName () Sheets ("Продажи"). Удалить End Sub
Этот код удалит только лист с именем «Продажи».

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

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

И поскольку я не менял свойство Application.DisplayAlert, вы увидите приглашение, в котором вам нужно будет нажать кнопку удаления, чтобы подтвердить продолжительность листа продаж.

Если вы хотите удалить несколько листов по их имени, вы также можете это сделать.

Например, приведенный ниже код удалит листы с именами Продажи, Маркетинг, Финансы:
Sub DeleteSheetsByName () Sheets («Продажи»). Delete Sheets («Marketing»). Delete Sheets («Finance»). Delete End Sub

Удаление всех листов, кроме активного листа, с помощью VBA

Если у вас есть книга с несколькими листами, и вы хотите удалить все листы, кроме активного листа, VBA, вероятно, является одним из лучших способов сделать это.

Ниже приведен код VBA, который удалит все листы, кроме активного листа в книге.
Sub DeleteSheetByName () Dim ws As Worksheet Application.DisplayAlerts = False для каждого ws в таблицах Если ws.Name ActiveSheet.Name Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub
Обратите внимание, что я сказал, что свойство Application.DisplayAlerts находится в начале кода, так как я не хочу видеть подсказку для каждого удаляемого листа.

Удалить все листы с определенной текстовой строкой в ​​имени

Это немного более продвинутый вариант эффективного использования VBA при удалении листов.

Предположим, у вас есть книга с множеством разных листов, и вы хотите удалить все листы, в которых есть определенная текстовая строка, тогда вы можете легко сделать это с помощью VBA.

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

Ниже приведен код VBA, который сделает это:
Sub DeleteSheetByName () Dim ws As Worksheet Application.DisplayAlerts = False For Each ws In Sheets If ws.Name Like "*" & "Sales" & "*" Тогда MsgBox ws.Name ws.Delete End If Next ws Application.DisplayAlerts = Истинный конец Sub
В приведенном выше коде используется оператор if-then для просмотра всех листов в книге. Он проверяет имя всех этих рабочих листов, и если имя содержит слово «Продажи», то этот рабочий лист удаляется.

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

Также обратите внимание, что я использовал звездочку (*), которая является символом подстановки, с обеих сторон текстовой строки, которую мы ищем в имени рабочего листа. Это гарантирует, что независимо от того, где строка появляется в имени листа, она все равно будет удалена.

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

Например, если вы хотите удалить те листы, в которых термин продажи появляется в начале, используйте следующий код в пятой строке.
Если ws.Name Like "*" & "Sales" & "*" Тогда
Здесь я использовал подстановочный знак только после текста «drink», а не перед ним. Это обеспечит при проверке имен рабочего листа только те, которые будут соответствовать критериям, в которых термин «Продажи» стоит в начале имени.

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

Но если у вас тяжелая книга с большим количеством листов и вы хотите быстро удалить определенные типы листов, вы также можете использовать VBA.

Надеюсь, вы нашли этот урок полезным.

Like this post? Please share to your friends:
  • Excel не ищет по фильтру
  • Excel не дает сохранить документ
  • Excel не ищет по поиску
  • Excel не дает редактировать ячейку
  • Excel не ищет как текст