Feedback by UserVoice

How can we improve Excel for Windows (Desktop Application)?

Ability to open multiple instances of Excel instead of opening just new window in the same instance (enable SDI)

In Excel 2010 I was able to open a new instance of excel when one instance was busy running VBA macros which take a long time. In this new instance I was able to open other spreadsheets without a problem and work with them while the other instance was busy running VBA macros. Now in excel 2016 if I open a new excel while one of them is running I only get a new windows in the same instance and this window is also busy and I'm not able to open a new spreadsheet to work in while the other one would be running the code.

Is there a way in excel 2016 to open a completely new instance of excel instead of just opening a new window in the same instance?

If there is not this is a big problem for me as I often have excel running VBA macros and during that time I cannot use excel to edit other spreadsheets.

2 votes
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    Signed in as (Sign out)

    We’ll send you updates on this idea

    Borut Pinter shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →
    already supported  ·  Dan Battagin [MS XL] responded  · 

    Hi Borut,

    This is already supported – you can start a new Excel instance (process) by doing the following:

    1. Click Start (or Windows Key+R)
    2. Type “Excel /x” (without quotes)
    3. (or Run)

    That should start up a new instance of Excel. You can use it to open a second file that won’t “block” on already open workbooks.

    Cheers
    ,Dan [MS]

    10 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      Submitting...
      • anonymous commented  ·   ·  Flag as inappropriate

        This does not already exist when opening excel documents.
        This feature should be native and not require opening command-line run excel /x with the path to the filename.

      • Anonymous commented  ·   ·  Flag as inappropriate

        I love how we get better info from other users than from MS themselves. Thank you so much!

      • Thad Murillo commented  ·   ·  Flag as inappropriate

        If you want to open from a double click of a file in explorer or Outlook attachment, etc, I found a "fix" or "hack" however you want to see it (this also works for 2013, and 64 bit versions, but some things need to be changed for the different versions) (this gets changed after updates to Office and/or Excel, so I have it set to run as a scheduled task at the beginning of the week for users) (and before somebody says "This isn't supported", that's right, it's not, but gives us the ability to do what we need to):

        $DDEKeys = @()
        $DDEKeys += New-Object psobject -Property @{ Date = "Excel.Addin" }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.AddInMacroEnabled"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.Backup"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.Chart"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.CSV"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.Macrosheet"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.OpenDocumentSpreadsheet.12"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.Sheet.12"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.Sheet.8"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.SheetBinaryMacroEnabled.12"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.SheetMacroEnabled.12"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.Template"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.Template.8"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.TemplateMacroEnabled"
        }
        $DDEKeys += New-Object psobject -Property @{
        Date = "Excel.Workspace"
        }
        #$DDEKeys += New-Object psobject -Property @{
        # Date = "Excel.XLL"
        #}

        $DDEKeys
        $defaultvalue = '"C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE" /x "%1"'

        foreach ($Key in $DDEKeys)
        {
        $DDEKey = $Key.Date
        $fullpath = "HKLM:\SOFTWARE\Classes\$DDEKey\shell\"
        $fullpathedit = $fullpath + "Edit"
        $fullpathnew = $fullpath + "New"

        #$DDEKey
        #Write-Host "HKLM:\SOFTWARE\Classes\$DDEKey\shell\Open\ddeexec"
        $exist = Test-Path "HKLM:\SOFTWARE\Classes\$DDEKey\shell\Open"
        If ($exist -eq $true)
        {
        Get-ItemProperty "HKLM:\SOFTWARE\Classes\$DDEKey\shell\Open\ddeexec"
        #Write-Host "$DDEKey is there"
        (Get-ItemProperty -LiteralPath "HKLM:\SOFTWARE\Classes\$DDEKey\shell\Open\command").'(Default)'
        Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\$DDEKey\shell\Open\command" -Name '(Default)' -Value $defaultvalue
        Remove-Item "HKLM:\SOFTWARE\Classes\$DDEKey\shell\Open\ddeexec" -Force -Recurse
        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Classes\$DDEKey\shell\Open\command" -Name "command" -Force
        }
        $exist = Test-Path "HKLM:\SOFTWARE\Classes\$DDEKey\shell\OpenAsReadOnly"
        If ($exist -eq $true)
        {
        Get-ItemProperty "HKLM:\SOFTWARE\Classes\$DDEKey\shell\OpenAsReadOnly\ddeexec"
        #Write-Host "$DDEKey is there"
        (Get-ItemProperty -LiteralPath "HKLM:\SOFTWARE\Classes\$DDEKey\shell\OpenAsReadOnly\command").'(Default)'
        Set-ItemProperty -Path "HKLM:\SOFTWARE\Classes\$DDEKey\shell\OpenAsReadOnly\command" -Name '(Default)' -Value $defaultvalue
        Remove-Item "HKLM:\SOFTWARE\Classes\$DDEKey\shell\OpenAsReadOnly\ddeexec" -Force -Recurse
        Remove-ItemProperty -Path "HKLM:\SOFTWARE\Classes\$DDEKey\shell\OpenAsReadOnly\command" -Name "command" -Force
        }

        $exist = Test-Path $fullpathedit
        If ($exist -eq $true)
        {
        Get-ItemProperty "$fullpathedit\ddeexec"
        #Write-Host "$DDEKey is there"
        #(Get-ItemProperty -LiteralPath "HKLM:\SOFTWARE\Classes\$DDEKey\shell\OpenAsReadOnly\command").'(Default)'
        Set-ItemProperty -Path "$fullpathedit\command" -Name '(Default)' -Value $defaultvalue
        Remove-Item "$fullpathedit\ddeexec" -Force -Recurse
        Remove-ItemProperty -Path "$fullpathedit\command" -Name "command" -Force
        }

        $exist = Test-Path $fullpathnew
        If ($exist -eq $true)
        {
        Get-ItemProperty "$fullpathnew\ddeexec"
        #Write-Host "$DDEKey is there"
        #(Get-ItemProperty -LiteralPath "HKLM:\SOFTWARE\Classes\$DDEKey\shell\OpenAsReadOnly\command").'(Default)'
        Set-ItemProperty -Path "$fullpathnew\command" -Name '(Default)' -Value '"C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE" /n'
        Remove-Item "$fullpathnew\ddeexec" -Force -Recurse
        Remove-ItemProperty -Path "$fullpathnew\command" -Name "command" -Force
        }

        }

      • SC commented  ·   ·  Flag as inappropriate

        Dan's solution is bad. There was previously an option to do this in settings, now we need a workaround, which is useless if sheets are opened from email or Explorer.

        Sorry Dan but this IS NOT SUPPORTED BY EXCEL, and your workaround is unacceptable.

      • Borut Pinter commented  ·   ·  Flag as inappropriate

        Hi Dan,

        I thank you very much for your reply. I have tried this as you described and it works like a charm :)

        regards,

        Borut.

      Feedback and Knowledge Base