У меня есть группа из 3 взаимосвязанных рабочих книг, которые извлекают данные друг из друга. То, как я получаю данные, происходит через Connections. Все файлы находятся на одном диске. Я пытаюсь открыть все три файла одновременно и внести изменения. Однако после открытия книги «A» я не могу правильно открыть файлы «B» или «C», так как это показывает, что файл используется другим пользователем и дает возможность открыть файл только для чтения.
Существует ли способ одновременного открытия всех файлов в режиме записи? Я пытался включить ChangeFileAccess для чтения, но это не работает.
Спасибо!
ОБНОВЛЕНИЕ:
Я связал все файлы, используя Данные> Соединения. Для дальнейшего расширения эти файлы открываются как пользовательские формы при запуске, и для этого я добавил этот код в «ThisWorkbook» (автоматически откройте пользовательскую форму и скройте рабочую книгу). Я начинаю думать, что моя проблема невозможности открыть более одного из этих документов одновременно из-за этого куска кода, но я не уверен, что это может быть или есть лучший способ открыть Userform и скрыть книгу. Любой совет приветствуется. Ниже приведен код, который я имею под "ThisWorkbook":
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'important to reset this
Application.IgnoreRemoteRequests = False
End Sub
Private Sub Workbook_Open()
'need to use ontime to allow xl to initialise fully
Application.OnTime Now, "ThisWorkbook.OnlyOneOfMe"
End Sub
Private Sub OnlyOneOfMe()
Dim xlApp As Excel.Application
On Error GoTo BAD
With Application
If Me.ReadOnly Or .Workbooks.Count > 1 Then
Me.ChangeFileAccess Mode:=xlReadOnly
Set xlApp = New Excel.Application
xlApp.Visible = True
xlApp.Workbooks.Open (Me.FullName)
GoTo BAD
Else
'stop opening from explorer (but not from excel)
.Visible = False
.IgnoreRemoteRequests = True
UserForm1.Show
.Visible = True
'.Quit
End If
Exit Sub
End With
BAD: If Err Then MsgBox Err.Description, vbCritical, "ERROR"
Set xlApp = Nothing
Me.Close False
End Sub