2013-09-12 2 views
1

информация:Открыть конкретный файл Excel в новом экземпляре Excel при открытии файла

У меня есть файл Excel с именем Demo.xlsm

Этот файл содержит UserForm с именем UserForm1, который автоматически загружает, когда файл открыт.

Рабочая книга с именем Demo.xlsm также отображается в фоновом режиме за формой пользователя при открытии файла.

Проблема:

Я часто есть приложение Excel уже открыто на моем рабочем столе с помощью различных книг и рабочих листов, содержащих информацию, которую я использую на ежедневной основе. Как бы то ни было, если я открою файл Demo.xlsm, он откроется в текущем приложении Excel вместе со всеми другими рабочими книжками/рабочими листами, которые я использую.

Во-первых: Я хотел бы, чтобы файл Demo.xlsm автоматически открывается в отдельном экземпляре/приложении Excel, чем другие мои работы.

Во-вторых: Я хотел бы, чтобы только пользовательская форма была видимой. (Мне не нужно/использовать, чтобы рабочая тетрадь/рабочие листы были видны в фоновом режиме.)

В-третьих: если возможно, чтобы второй экземпляр приложения Excel был минимизирован при показе пользовательской формы, это было бы идеально. (В настоящее время, если я пытаюсь свести к минимуму 2-й экземпляр приложения Excel, то UserForm также минимизируется)

Private Sub Workbook_Open() 
    Dim objExcel 
    Set objExcel = CreateObject("Excel.Application") 
    objExcel.Visible = True 

    UserForm1.Show 

    Application.ScreenUpdating = False 
    Set newBook = Workbooks.Open(Demo.xlsm) 
    Windows(Demo.xlsm).Visible = False 
    Application.ScreenUpdating = True 

    End Sub 

Я чувствую, что я не буду об этом правильный путь ...

Любая помощь с этим было бы очень полезно!

+0

http://www.excelqa.info/2011/06/17/how-to-open-excel-files-in-a-new-application-instance-windows-7-or-vista/может представлять интерес. – pnuts

+0

Я не знаю вашей более широкой цели - но большинство из того, что вы описываете, только вид виден - звучит как добавление. –

+0

pnuts - Я ценю ссылку ...проверил его, но я не обязательно хочу, чтобы каждый файл excel открывался в новом экземпляре, только этот конкретный файл. – user2292941

ответ

0

Для вашего Workbook_Open, сделайте что-нибудь вроде ниже, чтобы вы приблизились.

If Application.Workbooks.Count > 1 Then 
    Call Shell(Application.Path & Application.PathSeparator & "excel.exe " & ThisWorkbook.FullName) 
    ThisWorkbook.Close SaveChanges:=False 
Else 
    UserForm1.Show 
End If 

Я проверил это, и в диспетчере задач есть еще один «Excel.exe», поэтому он должен быть прав.

+0

Хм ... не уверен, что это то, что я ищу. Я тестировал его, и он, похоже, не ведет себя так, как будто я ищу ... Я еще поиграю с ним и посмотрю, смогу ли я это выяснить – user2292941

0

Это сработало для меня. Скопируйте этот код в объект ThisWorkbook:

Option Explicit 

Dim objExcel As Excel.Application 

Dim FileName As String 

Public Sub workbook_open() 
    FileName = ThisWorkbook.FullName 
    If vbReadOnly <> 0 Then 
     Exit Sub 
    Else 
     objExcel.Workbooks.Open FileName:=FileName 
     ThisWorkbook.Saved = True 
     ThisWorkbook.Close 
     objExcel.Quit 
    End If 
End Sub 
0

Это то, что я делаю, и это прекрасно работает. У меня есть лист с хорошей большой картиной, и картина имеет макрос, который:

Dim appXL As New Excel.Application 

appXL.Workbooks.Open "G:\All Users\Jurie\Test\Hotel Maintenance V1SE.xlsm" 
appXL.ActiveWorkbook.Windows(1).Visible = True 
appXL.Visible = True 
Workbooks("Hotel Stay Easy Maintenance Program.xlsm").Close SaveChanges:=True 
ThisWorkbook.Activate 

Это открывает мой файл в отдельном экземпляре, и я могу закрыть его, как я хочу, это не мешает любому другие открытые файлы.

0

Скопируйте ярлык в Excel, а затем щелкните правой кнопкой мыши, выберите свойства и добавьте в конец цели "-" C: \ Demo.xlsm "" (исключить первую и последнюю кавычки и заменить реальной файловой дорожкой для вашего файла.

Смежные вопросы