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


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

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

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

если сделать видимым то это тоже самое почти что я сделал
...
Рейтинг: 0 / 0
20.09.2006, 17:46:09
    #34000851
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление Excle листа !! Глюк ???
Код: 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
20.09.2006, 19:48:01
    #34001223
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление Excle листа !! Глюк ???
Объясните мне пожалуйста, зачем вы открываете вторую копию Экселя? Одной вам мало?
Код: 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
20.09.2006, 23:35:43
    #34001568
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление Excle листа !! Глюк ???
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
21.09.2006, 00:00:57
    #34001592
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление Excle листа !! Глюк ???
Пардон - проскочил одно сообщение об успехе от Тараса Ж.

Если срабатывает код:
Код: 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
21.09.2006, 13:50:40
    #34003035
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление Excle листа !! Глюк ???
White OwlОбъясните мне пожалуйста, зачем вы открываете вторую копию Экселя? Одной вам мало?

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


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