Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
 Аватар для Andrei72
0 / 0 / 0
Регистрация: 02.02.2012
Сообщений: 60

Работа с Excel: Удаление листов

12.06.2012, 12:01. Показов 5356. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как удалять листы из книги Excel, что то ни как не удаляются.

И еще как можно создать книгу Excel при сохранении всего с одним листом? Конструкция типа:

VB.NET
1
2
3
4
5
6
7
'Открыть новую книгу Excel
            oExcel = CreateObject("Excel.Application")
            oExcel.Application.SheetsInNewWorkbook = 1
           
            'Добавить данные в ячейки первого листа новой книги
            oSheet = oBook.Worksheets(1)
            oSheet.Name = "Титульная" ' Переименование названия листа
Не работает, листов все равно 3.

И удаление листов:
VB.NET
1
oSheet = oBook.Worksheets(2).delete
тоже не действует. Уже по всякому переставлял.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.06.2012, 12:01
Ответы с готовыми решениями:

Работа с Excel: Узнать количество листов в книге
Есть необходимость определить количество созданных и заполенных (не пустых) листов в книге Excel. Полученное значение записывается в...

Работа с Excel: установить разметку листов для вывода на печать
Подскажите пожайлуста как програмно задать размер листов в Excel. Надо чтобы при сохранении данных в документ уже была правильная...

Удаление листов excel
Добрый день, друзья! Нужна помощь, написал небольшой макрос, который из файла шаблона делает 3 листа в новой книге, сохраняет его с...

4
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
12.06.2012, 12:41
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Public Class Form1
    Dim oExcel As Object
    Dim oBook As Object
    Dim oSheet As Object
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        oExcel = CreateObject("Excel.Application") ' создаем экземпляр приложения
        oExcel.Visible = True ' любуемся им
        oExcel.Application.SheetsInNewWorkbook = 1 ' в новой книге будет 1 лист
        oBook = oExcel.Workbooks.Add() ' создаем новую книгу
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        oSheet = oBook.sheets(1) ' задаем объект-лист переменной
        oSheet.Name = "Переименованный" ' переименовываем лист
        If MsgBox("Удалить лист?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
            oSheet = oBook.sheets.add(after:=oSheet) ' добавляем новый пустой лист после переименованного перед удалением, т.к. книга не может быть без листов. Заодно и переопределяем переменную oSheet
 
            ' при попытке удалять листы с данными (ну на случай, если тебе это пригодится) указываем на то, что предупреждения показывать не надо
            oExcel.DisplayAlerts = False
 
            ' удаляем первый лист
            oBook.sheets("Переименованный").delete() ' к листам можно и по имени обращаться
            ' теперь можно снова включить предупреждения
            oExcel.DisplayAlerts = True
 
            oSheet.Name = "Вторичный" ' второй добавленный лист называем Вторичным
        End If
    End Sub
End Class
чудесно работает
1
 Аватар для Andrei72
0 / 0 / 0
Регистрация: 02.02.2012
Сообщений: 60
12.06.2012, 13:24  [ТС]
Спасибо Дмитрий большое! Оказалось что ошибка (а точнее создание 3 листов) происходит после этой строки, хотя не пойму почему
VB.NET
1
oSheet = oBook.Worksheets(1)
А потом мне надо еще открывать этот файл для его дозаписи в отдельные листы. Надо будет обращаться к ним так?
VB.NET
1
oSheet = oBook.Worksheets(2)
Добавлено через 3 минуты
Возникает ошибка.
Как создавать в дальнейшем новые листы?
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
12.06.2012, 13:44
Цитата Сообщение от Andrei72 Посмотреть сообщение
Надо будет обращаться к ним так?
Можно по имени.
Цитата Сообщение от Andrei72 Посмотреть сообщение
Как создавать в дальнейшем новые листы?
VB.NET
1
oBook.sheets.add(after:=oSheet)
здесь Osheet - это объект, представляющий уже имеющийся лист в книге. Можно не указывать, тогда новый лист просто добавится в конец книги. Т.е. можно
VB.NET
1
oBook.sheets.add()
эта функция результатом возвращает добавленный лист, т.е. его можно спокойно присвоить переменной и дальше обращаться посредством к созданному листу через переменную.
Вообще, судя по глубине познаний и количеству вопросов, рановато с поздним связыванием ты начал. Не в обиду.
Лучше добавь референц в проект на Excel Library и работай с применением подсказок студии. Так оно вернее будет. А после отладки всегда можно скорректировать готовый проект на позднее связывание.
Ну а если все же хочешь позднее связывание - открывай редактор VBA самого Экселя и там собирай куски кода, а после тащи их в проект.

Кстати, в моем коде есть ответы на все твои вопросы. Просто внимательнее изучи пример, я его не на коленке написал, все проверено.
2
 Аватар для Andrei72
0 / 0 / 0
Регистрация: 02.02.2012
Сообщений: 60
12.06.2012, 13:53  [ТС]
Прошу прощения, сам сглупил, первый вопрос решал, а на второй ответ не заметил, теперь сам разобрался как новый лист создавать, огромное спасибо еще раз!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.06.2012, 13:53
Помогаю со студенческими работами здесь

Работа со StringGrid. Выдать список листов за дату, список листов с протяженностью более заданной...
Здравствуйте! Помогите доработать. Программа должна выдавать список листов за дату, список листов с протяженностью более заданной,...

Работа с Excel: Удаление строк
Помогите решить задачу по работе с Excel. Необходимо считать данные из строки с записью в переменную (допустим перового столбца A4) -...

Определить, сколько можно купить тетрадей по 12 листов, по 48 листов и по 96 листов, зная цену
Определить, сколько можно купить тетрадей по 12 листов, по 48 листов и по 96 листов, если цена тетради с 96 листами 60 р., с 48 листами –...

Удаление листов
можно ли удалить листы, при этом чтобы параллельно убирались значения из формул?

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru