powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удаление Excle листа !! Глюк ???
13 сообщений из 13, страница 1 из 1
Удаление Excle листа !! Глюк ???
    #33999760
Тарас Ж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь из одной книги удалить лист из другой пишу:


BudPath = ActiveWorkbook.Path
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set eWindow = CreateObject("Excel.Application")

For i = 5 To 5
OpeFile = Cells(4 + i, 2) & "PER09"
Set eWorkbookBud = eWindow.Workbooks.Open(BudPath & "\" & OpeFile, False)

eWorkbookBud.Worksheets("Data3").Visible = True
eWorkbookBud.Worksheets("Data3").Unprotect ("128")
eWorkbookBud.Worksheets("Data3").Delete

eWorkbookBud.Worksheets("Man_FLASH").Unprotect ("128")
eWorkbookBud.Worksheets("Man_FLASH").Delete


eWorkbookBud.Close SaveChanges:=True, RouteWorkbook:=False
Next i

Application.DisplayAlerts = True
End Sub

Ошибок никаких не выдает.., а листы как были так и есть , что делать ? помогите !
...
Рейтинг: 0 / 0
Удаление Excle листа !! Глюк ???
    #33999828
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тарас ЖОшибок никаких не выдает.., а листы как были так и есть , что делать ? помогите !
Закомментируйте строку
Код: plaintext
Application.DisplayAlerts = False
и посмотрите сообщение об ошибке
...
Рейтинг: 0 / 0
Удаление Excle листа !! Глюк ???
    #34000050
Тарас Ж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Комментировал.., ошибок нет ., и листы на месте...
...
Рейтинг: 0 / 0
Удаление Excle листа !! Глюк ???
    #34000200
Taranaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
OpeFile = Cells( 4  + i,  2 ) & "PER09"
Set eWorkbookBud = eWindow.Workbooks.Open(BudPath & "\" & OpeFile, False)
Брек поинт здесь воткнуть и посмотреть что в имедиате на
Код: plaintext
? BudPath & "\" & OpeFile
Выдаст. Вероятно он не то имя файла берет и не открывает нифига... Хотя странно, что ошибок не выдает...
...
Рейтинг: 0 / 0
Удаление Excle листа !! Глюк ???
    #34000306
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И здесь ошибки нет?
Код: plaintext
For i =  5  To  5 

...
Рейтинг: 0 / 0
Удаление Excle листа !! Глюк ???
    #34000717
Тарас Ж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я помимо того что пытаюсь удалить из файла лист., я туда еще добавляю и редактирую листы , все добавляется и редактируется.., т.е. файл открывается все ОК .., но процедура удаления не отрабатывает.

цикл специально ограничил 1-ой итерцией.., для проверки, т.е. в этом ошибки нет.

Проблему удалось решить явным открытием файла:
OpeFile = Cells(4 + i, 2) & "PER09.xls"

Workbooks.Open Filename:=BudPath & "\" & OpeFile , UpdateLinks:=0

Workbooks(OpeFile ).Worksheets("Data3").Visible = True
Workbooks(OpeFile ).Worksheets("Data3").Unprotect ("128")
Workbooks(OpeFile ).Worksheets("Data3").Delete

Так все работает.., правда медленнее
Почему тот вариант не прошел., так и не понял
...
Рейтинг: 0 / 0
Удаление Excle листа !! Глюк ???
    #34000772
gst1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня вроде прошел предыдущий вариант, но после
Set eWindow = CreateObject("Excel.Application")
было добавлено
eWindow.Visible = True
...
Рейтинг: 0 / 0
Удаление Excle листа !! Глюк ???
    #34000846
Тарас Ж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. получается в скрытом режиме он не работает ?

если сделать видимым то это тоже самое почти что я сделал
...
Рейтинг: 0 / 0
Удаление Excle листа !! Глюк ???
    #34000851
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub f()
BudPath = ActiveWorkbook.Path
'Application.DisplayAlerts = False
'Application.ScreenUpdating = False
Set eWindow = CreateObject("Excel.Application")
eWindow.DisplayAlerts = False
For i =  5  To  5 
OpeFile = Cells( 4  + i,  2 ) & "PER09"
Set eWorkbookBud = eWindow.Workbooks.Open(BudPath & "\" & OpeFile, False)

Set xlWh = eWorkbookBud.Worksheets("Data3")
xlWh.Delete
eWorkbookBud.Close SaveChanges:=True, RouteWorkbook:=False
Next i
Set xlWh = Nothing
Set eWindow = Nothing
Application.DisplayAlerts = True
End Sub
...
Рейтинг: 0 / 0
Удаление Excle листа !! Глюк ???
    #34001223
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните мне пожалуйста, зачем вы открываете вторую копию Экселя? Одной вам мало?
Код: plaintext
1.
2.
3.
4.
Sub f()
Set eWorkbookBud = Workbooks.Open(ActiveWorkbook.Path & "\" & Cells( 4 ,  2 ) & "PER09", False)
eWorkbookBud.Worksheets("Data3").Delete
eWorkbookBud.Close SaveChanges:=True, RouteWorkbook:=False
End Sub
...
Рейтинг: 0 / 0
Удаление Excle листа !! Глюк ???
    #34001568
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Судя по некоторым признакам, код запускается из-под Excel - значит создавать инстанцию аппликации не имеет смысла

2) Если имена книги и листов верные и листы всего лишь защищены и спрятаны, то должно хватить след. кода (нет нужды снимать защиту и делать листы видимыми):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub test()
    BudPath = ThisWorkbook.Path
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    For i =  5  To  5 
        OpeFile = Cells( 4  + i,  2 ) & "PER09.xls"
        Set eWorkbookBud = Workbooks.Open(BudPath & "\" & OpeFile, False)
        With eWorkbookBud
            .Worksheets(Array("Data3","Man_FLASH")).Delete
            .Close SaveChanges:=True, RouteWorkbook:=False
        End With
    Next i
    Application.DisplayAlerts = True
End Sub

3) Если код листов не удаляет, то первое, что надо проверить это не защищена ли книга - меню Сервис>Защита>Снять защиту книги.


KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Удаление Excle листа !! Глюк ???
    #34001592
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон - проскочил одно сообщение об успехе от Тараса Ж.

Если срабатывает код:
Код: plaintext
1.
2.
3.
4.
OpeFile = Cells( 4  + i,  2 ) & "PER09.xls"
Workbooks.Open Filename:=BudPath & "\" & OpeFile , UpdateLinks:= 0 
Workbooks(OpeFile ).Worksheets("Data3").Visible = True
Workbooks(OpeFile ).Worksheets("Data3").Unprotect ("128")
Workbooks(OpeFile ).Worksheets("Data3").Delete

То ошибка наверное была в неуказании расширения .xls (это только если система не сконфигурирована на скрытие расширения)

Правда также возможна проблема неуказания листа, где находится Cells(4 + i, 2) - возможно значение ячейки [B9] бралось не с того листа (многое зависит от того, из какого модуля запускали код и/или какой лист/книга были активными в тот момент)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Удаление Excle листа !! Глюк ???
    #34003035
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlОбъясните мне пожалуйста, зачем вы открываете вторую копию Экселя? Одной вам мало?

Мне мало.
Если речь идет про запуск из под Excel, то проблема в визуализации.
Совсем не хочется чтоб на экране что-то мелькало
если поставить
Код: plaintext
Application.ScreenUpdating = False
то на панели задач Windows все равно видно что книга открылась,
EXCEL2000 SP3
так вот что бы не было видно я создаю еще один экземпляр EXCEL а он по умолчанию Visible = False
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удаление Excle листа !! Глюк ???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]