Страницы: 1
RSS
Невозможно сохранить данные. Временная ошибка 1004, Method 'Open' оf object 'Workbooks' failed
 
Доброго времени суток.

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

Проблемка следующая - файлик написан в 2018 на ёксель 2010 - все работало. В прошлом годе фирма переехала на Office 365 и началось...
К сообщению: "неизвесная ошибка, файл будет закрыт?" я уже привык как к "сохранить данные перед закрытием? да/нет". Но после очередного обновления ребята, которые юзали файл, начали жаловаться, что не могут сохранить данные - при нажатии кнопки вылетает Run-time error '1004':     Method 'Open' оf object 'Workbooks' failed. и строку Set WSh = Workbooks.Open("\\путь к файлу в общих папках.xlsx") светит...
Сам файл прикладывать не вижу смысла(да и не маленький). Выложу проблемную часть

Код
Option Explicit
Dim WSh As Workbook    'книга базы
Dim WShOpen As String  'доступ к базе
Dim WOB As Worksheet      'лист базы
Dim Fill As Worksheet     'лист списка
Dim WO As ListObject      'таблица базы
Dim FillTab As ListObject 'таблица списка
Dim WOr As ListRow        'строка базы
Dim FTR As ListRow        'строка списка

Sub сохранить()
'формировка таблиц
....
'    копия таблицы
 Range("Table11[[#Headers],[Дата]]").Select
    ActiveSheet.ListObjects("Table11").Range.AutoFilter Field:=6, Criteria1:= _
        "<>"
        If ThisWorkbook.Worksheets("data").Range("U35") = 0 Then
        ThisWorkbook.Worksheets("data").Visible = False
        MsgBox "Нет записей"
        Exit Sub
        Else
    Range("Table11").Select
    Selection.Copy
    
 'открыть базу
   Set WSh = Workbooks.Open("\\путь к файлу в общих папках.xlsx")
    
    Set WOB = WSh.Worksheets("WorkShift")

    WOB.Select
'    поиск конца таблицы и вставка
 Dim iLastRow As Long
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(iLastRow + 1, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
        WSh.Save
    WSh.Close
    Set WSh = Nothing
    
    ThisWorkbook.Worksheets("data").Visible = False
End If
End Sub

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

Гуру, на Вас все надежды!
 
Попробуйте добавить родителя:
Код
Application.Workbooks.Open
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Доброго утречка.

Ругается, что .Open - лишний аргумент.
Сейчас прописал WSh.Activate - посмотрим...

Не помогло.
Изменено: zasada - 09.04.2020 08:10:13
 
Тогда проблема может быть в самом офисе - какие-то обновления некорректно накатились.
А еще посмотрите в Tools-References - вдруг там есть MISSING(с таких галочки надо снять).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Галки стоят толко на :

Visual Basic For Applications
Microsoft Excel 16.0 Object Library
OLE Automation
Microsoft Office 16.0 Object Library
Microsoft Forms 2.0 Object Library

Может наоборот - что-то не включено?

Может стоит прописать проверку на открытость книги. Просто у нас в одной из папок есть заблокированная к правке книга - сотрудник ушел на пенсию, его учетку удалили, а книга при открытии все равно пишет - редактировать низя, я открыта у пользователя... :)
Изменено: zasada - 09.04.2020 09:54:35
 
Что же Вы сразу об этом не сказали? :) Если код спотыкается только на этой одной книге - то проверка вариант. Если же на любой - то нет.
Как проверить открыта ли книга?
В Вашем случае СПОСОБ 3 должен подойти.

P.S. Никакие доп.галки не нужны - Open стандартный метод Excel.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Я так понял, что код мне покажет только доступность. Кто эту доступность порушил так инкогнито и будет? Тогда я лучше попробую переименовать книгу базы и изменить путь в коде... Если и это не поможет тогда уже ОЙ :(
 
Цитата
zasada написал:
Кто эту доступность порушил так инкогнито и будет
В сетевой папке, где лежит Ваш файл, должен быть скрытый файл с именем ~$ВашеИмяФайла. Удалите его (если не получится, попросите системщиков).
Владимир
 
Спасибо, Владимир, но это я проверил. Зависшего хвоста нет.
Может где то именно у меня на локалке такой затерялся - у меня 1004 не выдавало ни разу. Но попробуй найди. "Поиск" результата не дал.
 
Скрытый файл - охранник всегда лежит в той же директории, что и "охраняемый" файл Excel.
Чудес не бывает, если при открытии файл пишет, что он редактируется другим пользователем, то либо есть файл - "охранник" (в котором имя другого пользователя и указывается), либо к файлу открыт общий доступ.
Владимир
 
А, вы о примере с уволеным сотрудником... Тогда именно
Цитата
либо к файлу открыт общий доступ
:)  
 
Общий доступ в Excel крайне не стабилен.
Владимир
 
Переименование и смена пути пока сработала 50/50 - на одной машине порядок, на другой снова 1004.
Подожду до завтра - на каждой машине сменится по 2 учетки...
 
Огромное спасибо всем участникам, таки ОЙ  :cry:

Буду ждать ITшников из удаленки по карантину и уже им моск выносить  ;)

Всем здоровья и удачи!
Страницы: 1
Наверх