Я думаю, что решение здесь заключается в открытии этой конфликтующей книги в другом экземпляре Excel, поэтому другие файлы на нее не будут влиять.
Чтобы вручную открыть новый экземпляр Excel, удерживайте клавишу ALT инажмите на значок Excel.Но в вашем случае, если файл используют несколько человек, тогда все должны это сделать.
Я искал способ создания файла BAT, который открывает этот файл в новом экземпляре, но яПолностью noob о командах ms-dos, поэтому я публикую этот ответ и надеюсь, что кто-то может помочь.
Создать BAT-файл очень просто: просто создайте TXT, введите команды, сохраните его и измените расширение файла.BAT.
Имейте в виду, что я использую мои пути к ПК, поэтому вам нужно адаптировать его к своим путям.Я много чего перепробовал, но не справился с этим:
"C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE"
откроет Excel в новом экземпляре . start "excel.exe" "C:\filepath\yourfile.xlsx"
откроет файл, но в активный экземпляр .Если экземпляра нет, он создаст новый, но это не сработает так, как вам нужно "filepath\yourfile.xlsm"
сделает то же, что и шаг 2
Так что я 'мы не смогли найти точные команды.Но я почти уверен, что должен быть способ, которым BAT-файл открывает новый экземпляр Excel (как в шаге 1) и открывает файл в этом экземпляре.
О вашем макросе, еще один снимок в темноте,но вы отправили У меня есть книга, которая запускается каждые x минут с Application.OnTime , не знаю, сколько раз вам нужно ее выполнить, но, возможно, с Task Scheduler вы можете автоматизироватьпроцесс, потому что планировщик задач получил возможность открывать файлы в новых экземплярах.
Извините, но не смог найти точные команды.Я могу открыть Excel в новом экземпляре (шаг 1), и я могу открыть определенный файл, но не могу объединить их оба.
Надеюсь, кто-то может помочь сэта часть, так что вы можете создать BAT-файл для выполнения этой конфликтующей рабочей книги в другом экземпляре, просто дважды щелкнув по этому BAT-файлу (так что всем не нужно будет помнить о ALT)
ВОЗМОЖНОЕ РЕШЕНИЕ 2: Другим способом будет выполнение этого файла Excel, но из другого приложения, поэтому вы можете создать новый экземпляр Excel из VBA.Я сделал простой файл Word, который создает и открывает файл Excel в новом экземпляре, чтобы вы могли работать с остальными файлами Excel.Код должен быть в событии Document_Open
.
Private Sub Document_Open()
Application.ScreenUpdating = False
Application.Visible = False
Dim ExcelAPP As Object
Dim ThisWB As Object
Set ExcelAPP = CreateObject("Excel.Application")
ExcelAPP.Visible = False
Set ThisWB = ExcelAPP.Workbooks.Open("filepath\yourfile.xlsm")
ThisWB.Close False
DoEvents
ExcelAPP.Quit
Application.ScreenUpdating = True
Application.Visible = True
Application.Quit False
End Sub
Так что, просто открыв этот файл слова, ваш файл Excel будет выполнен в новом экземпляре и не будет виден.
KNOWN FAILS: Этот способ хорош, если у вас уже открыт экземпляр Excel, но если нет открытого файла Excel (вы закрываете все из них), вы выполняете этот код, а затем открываете файл Excel, Excelфайл будет открыт в этом невидимом экземпляре, поэтому он не идеален.