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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2014, 20:36   #1
Debauchee
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 41
По умолчанию Глюки при создании макросом файла на серверe

Здравствуйте!
Имеется странный глюк. Если в Экселе вручную создаю новую книгу (Ctrl-N или мышью "Создать"), затем сохраняю ее по сети ("Сохранить как...") в расшаренной на сервере папке с невменяемым путем, то все нормально, далее этот файл можно менять как угодно и при последующем сохранении никаких ошибок не возникает.

Если выполнить в макросе:
Код:
Dim newFileName As String
Dim WB As Workbook
Set WB = Workbooks.Add(xlWBATWorksheet)
...
' устанавливаем форматы ячеек
...
' заполняем новую книгу данными
...
newFileName = "\\SERVER\ОБЩАЯ ПАПКА\ТРАНСПОРТНЫЙ отдел\Марков\2014\ОТКРЫТЫЕ\Сиротские\Домодедово\Вим-Авиа\Салоники\НН-284(copy).xls"	' имя файла отчета

WB.SaveAs newFileName
WB.Close 0
Эксель на минуту "замирает", его окно ни на что не реагирует, потом тихо закрывается без каких-либо сообщений об ошибках и без сохранения всех открытых в нем файлов, в серверной папке создается новая пустая книга с заданным именем, а в списке открытых на сервере ресурсов новая книга висит, как файл, открытый пользователем "Гость". Если на сервере принудительно закрыть этот файл, то он сохраняется и имеет размер ноль байт.
На рабочей станции в списке системных событий нет никаких уведомлений об ошибках или предупреждений.

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

С чем могут быть связаны такие глюки? В какую сторону копать?

Сервер - Windows-Server 2003 R2, сетевой доступ – "рабочая группа" (без домена), права на расшаренную папку стоят, как "все"-> "полный доступ"
рабочая станция - Windows-XP SP3, MS Office 2003 SP1

Последний раз редактировалось Debauchee; 14.08.2014 в 20:43.
Debauchee вне форума Ответить с цитированием
Старый 14.08.2014, 21:19   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
С чем могут быть связаны такие глюки? В какую сторону копать?
проблема точно не в макросе
а в локальной сети, либо в правах доступа к папке
сам как-то сталкивался с подобным, - но уже не помню, как решил вопрос

как вариант:
1) сохраняете файл на своем компе (в локальной папке)
2) копируете созданный файл на сервер одной строкой кода (метод FileCopy)
EducatedFool вне форума Ответить с цитированием
Старый 15.08.2014, 19:01   #3
Debauchee
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 41
По умолчанию

Спасибо, EducatedFool!

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

Можно ли как-то принудительно заставить Эксель логировать ошибки работы макросов?
Debauchee вне форума Ответить с цитированием
Старый 16.08.2014, 00:38   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

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

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

Цитата:
права на расшаренную папку стоят, как "все"-> "полный доступ"
судя по указанному вами пути, - у вас там миллион вложенных папок, -возможно, где-то на одном из уровней вложенности что-то не так настроено

попробуйте так: (чтобы папок было поменьше - вдруг работать начнет...)
Код:
newFileName = "\\SERVER\ОБЩАЯ ПАПКА\ТРАНСПОРТНЫЙ отдел\НН-284(copy).xls"

Последний раз редактировалось EducatedFool; 16.08.2014 в 00:42.
EducatedFool вне форума Ответить с цитированием
Старый 16.08.2014, 23:33   #5
Debauchee
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 41
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
судя по указанному вами пути, - у вас там миллион вложенных папок, -возможно, где-то на одном из уровней вложенности что-то не так настроено
Бардак с правами доступа - это первое, что пришло в голову.
Переустановил права доступа на всей этой уйме папок и файлов - не помогло.
Задавал доступ только для авторизированных пользователей сервера - тоже без полезного результата.
Запускал макрос с другой рабочей станции с 2003-м офисом - тоже аналогичный вылет.
Установил на сам сервер MS Office 2003, открыл в нем книгу с макросом (файл НН-284(copy).xls в этом случае был локальным) - все работает без проблем!
Запустил макрос с ноутбука в той же сети, но с Windows-7 Home и 2007-м офисом - все быстро работает и сохраняется без проблем.
Цитата:
Сообщение от EducatedFool Посмотреть сообщение
попробуйте так: (чтобы папок было поменьше - вдруг работать начнет...)
...
Код:
newFileName = "\\SERVER\ОБЩАЯ ПАПКА\ТРАНСПОРТНЫЙ отдел\НН-284(copy).xls"
Создавал отдельную шару с таким же полным доступом, и в ней создаю макросом файл. В пути нет ни пробелов, ни русских букв, ни скобок.
newFileName = "\\SERVER\temp\xyz.xls"
Запустил макрос на "проблемной" рабочей станции - то же безобразие, Эксель падает!

Создал новую шару на совсем другом сервере (Windows-Server 2008 Standard, без сервис-паков и апдейтов), назначил сохранение экселевской книги туда, по такому же длинному кириллическому пути - все работает нормально, причем как с 2003-м, так и с 2007-м офисами.

Что за мистика?!

P.S. Вопрос о принудительном логировании ошибок Экселя, остается открытым.
Debauchee вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка при создании .def файла mr_virtus Помощь студентам 1 20.03.2014 20:19
Ошибка при создании COM сервера reggga C++ Builder 0 13.02.2012 18:22
Проблема при создании файла (3CH) Livores Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 26.05.2010 17:01
Диалоговое окно при создании файла tae1980 Microsoft Office Excel 5 16.03.2009 21:41
События при создании/открытия файла _symon Win Api 2 13.02.2009 21:19