3

Помогите мне выследить вопрос.

Затем я пытаюсь открыть или сохранить электронную таблицу в Excel, она всегда показывает мне строку состояния загрузки без какого-либо прогресса. Через несколько минут файл открывается или нет. Азартная игра Когда он не открылся, я получаю это сообщение об ошибке "файл открыт другим пользователем".

Должен заметить, что у меня windows 7, офис 2007. Я попытался перенести некоторые файлы на другой компьютер, и сначала он работает нормально, без проблем, но потом все та же проблема. Всплывающее диалоговое окно с сообщением. Это происходит только для сетевых файлов.

Конечно, я попытался запустить Excel в режиме сохранения и в режиме совместимости. Но ничего не изменится. Дайте, пожалуйста, любую подсказку, что это может быть и как я могу это исправить?

4 ответа4

1

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

Я использовал ниже код, очень похожий на код Сида здесь.

Код пытается записать в файл C;\mywork.xls (измените свой путь к файлу, чтобы он подходил), если есть ошибка, файл уже открыт, иначе файл открыт. Проверка ошибок происходит сразу, а не с задержкой по времени.

Sub Sample()
    Dim Ret
    Dim Wb As Workbook
    Dim strFile As String
    styrfile = "C:\myWork.xlsx"
    Ret = IsWorkBookOpen(strFile)
    If Ret = True Then
        MsgBox "File is open"
    Else
        Set Wb = Workbooks.Open(strFile)
    End If
End Sub

Function IsWorkBookOpen(FileName As String)
    Dim ff As Long, ErrNo As Long

    On Error Resume Next
    ff = FreeFile()
    Open FileName For Input Lock Read As #ff
    Close ff
    ErrNo = Err
    On Error GoTo 0

    Select Case ErrNo
    Case 0:    IsWorkBookOpen = False
    Case 70:   IsWorkBookOpen = True
    Case Else: Error ErrNo
    End Select
End Function
0

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

Есть ли причина, по которой этот файл хранится в сети, а не на локальном компьютере?

Если вам нужно открыть файл, я бы предложил открыть его как файл только для чтения

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

Убедитесь, что вы включили кавычки, если в пути или имени файла есть пробелы. «LocalDrive:\ExcelPath\excel.exe» /r «NetworkDrive:\WorkbookPath\Workbook.xls»

В качестве альтернативы - использовать HTML-документ для ссылки на файл при загрузке? Это сохранит временный файл на вашем локальном компьютере, предоставляя полный доступ, который вы можете затем повторно скопировать на сетевой диск.

<a href="NetworkDrive:/WorkbookPath/Workbook.Xls" download>
0

Вы можете использовать procxp, чтобы отследить, кто еще открыл файл.

Используя PID (procid), вы можете проверить, какая программа и какой пользователь его открыл. Для этого запустите tasklist.exe с повышенными cmd.exe .

(Это полезно, когда файл открыт с компьютера, на котором вы работаете. Если он был открыт с другого компьютера, запустите net files на сервере, на котором размещен общий ресурс, чтобы получить компьютер и пользователя, который его открыл).

-2

Попробуйте запустить Excel с ключом /a в командной строке. Это может быть вызвано макросами или надстройками, но в этом случае вы можете загрузить Excel без этих файлов запуска.

Также включите Игнорировать другие приложения, которые используют функцию динамического обмена данными. Откройте «Параметры Excel», нажмите «Дополнительно» в левой части диалогового окна. Затем убедитесь, что DDE выбран.

Затем попробуйте следующее: откройте Инструменты - Параметры папки. В списке типов файлов выберите XLS. Затем нажмите Дополнительно. Выберите Открыть. Поле «Приложение, используемое для выполнения действия» содержит фактическую командную строку, используемую для запуска Excel. Вы должны добавить в это поле пробел, за которым следует «% 1». Не забудьте включить цитаты. И отмените выбор Использовать DDE. Это все, что я могу рекомендовать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .