locked
"Open method of Workbooks class failed" when opening Excel file via Internet Explorer RRS feed

  • Question

  • (apologies, I posted this first to the general Office 2010 forum, but then realized this was probably a better spot to post)

    We have an Excel COM add-in installed on users' PCs.  This add-in responds to workbook open events by opening a particular XLA file (also deployed to the PC) to make certain features available.  This process works flawlessly when Excel files are opened locally - but when a user attempts to open an Excel file from an IE link, we get the following error: "Open method of Workbooks class failed".  This is happening on the line that is trying to open the XLA file.  This only happens when launching an Excel link from IE - works fine in Chrome or Firefox.

    I have found several posts on this topic, but no solutions:

    1. This post (https://social.msdn.microsoft.com/forums/office/en-US/73c96005-84af-4648-b103-32b677205be3/open-method-of-workbooks-class-failed) is the closest to our problem.  In this case, the "answer" was that the user may not have access to the 2nd workbook being opened.  But in our case, we're opening an XLA that is on the local machine, and I've confirmed that it is not corrupt and accessible (read & write, just in case!) to Everyone.

    2. This (very old) post (http://www.pcreview.co.uk/forums/open-method-workbooks-fails-excel-hosted-ie-t965608.html) seems similar, but is talking about opening Excel inside of IE.  This is not what we're doing - the link is supposed to (and does) open Excel outside of IE.  Interestingly, Excel.exe is being launched with the "-embedded" flag, even though it isn't running in the IE window.  When launching Excel by opening the file locally, Excel.exe is run with the "/dde" flag instead.  Clearly the "-embedded" mode is what is causing the problem.  I could change the links on the web page to use some JavaScript to open Excel differently... unfortunately, the links are actually generated by SharePoint (the Excel files are in a SP repository), so this is not really an option.

    3. This Microsoft KB article (http://support.microsoft.com/kb/268016) talks about problems opening an XLA directly from IE... but this is the case of a link pointing directly to an XLA file, not opening a regular workbook that in turn opens an XLA, as is my case.  In fact, this article specifically points out in the "More Information" section that "End users do not normally open XLAs; instead they open an XLS that (if needed) loads one or more XLAs during startup." ==> precisely what I'm trying to do that is giving me the error!

    I've replicated the situation with a very simple COM add-in (created in VS2010 using VB.Net) and a very simple XLA file (does nothing, just pops up a message in auto_open).  For anyone wanting to try it out, here is the exact test case:

    1. In Excel, create a simple XLA file containing only the following code, and save it in C:\TEMP\dummy.xla:

    Sub Auto_Open()
    MsgBox "Auto Open fired"
     End Sub

    2. In Visual Studio, create a new Excel 2010 Add-In.  I created mine via Visual Basic, but I doubt the choice of language matters.  Place the following code in ThisAddin.vb:

    Public Class ThisAddIn
    
        Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
             AddHandler Me.Application.WorkbookOpen, AddressOf Application_WorkbookOpen
         End Sub
    
        Private Sub ThisAddIn_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shutdown
         End Sub
    
        Sub Application_WorkbookOpen(ByVal workbook As Excel.Workbook)
             On Error GoTo ErrHandler
             If (Not workbook.Name.Contains("dummy.xla")) Then
                 MsgBox("Workbook open")
                 Application.Workbooks.Open("C:\temp\dummy.xla")
                 Application.Workbooks("dummy.xla").RunAutoMacros(Excel.XlRunAutoMacro.xlAutoOpen)
             End If
             Exit Sub
    ErrHandler:
            MsgBox(Err.Description)
        End Sub
    
    End Class
    

    3. Build & publish this add-in and install it on the same machine as the XLA created in step 1.

    4. Create and save an empty Excel workbook (I called mine WayneTest1.xlsx) - save it locally (on your desktop), and put a copy somewhere on your web server (I put mine directly in c:\inetpub).

    5. Create an HTML file with a link to that workbook, saving it to the same web server location - here is mine:

    <html>
    <body>
    <a href="WayneTest1.xlsx">Link to Excel file</a>
    </body>
    </html>
    
    

    6. Double click the workbook on your desktop (from step 4) - opens fine, I get the "workbook open" message, following by the "Auto Open fired" message.

    7. In Internet Explorer, navigate to the HTML file specified in step 5 and click on the link - when prompted, select "Open" - I get the "workbook open" message, following by the error message "Open method of Workbooks class failed".

    Here are a few things I've ruled out / tried so far:

    - Unchecked all the "Protected View" settings in Excel, made no difference
    - Unchecked all the "File block settings" in Excel, made no difference
    - Made sure dummy.xla was open for read & write to Everyone
    - Made sure the web page was in Trusted sites and set the security level to Low for those sites in IE
    - Tried making the local desktop file (step 6) readonly, made no difference (i.e. launching it locally still worked fine)
    - Tried using Excel 2013 - made no difference

    Any ideas / suggestions?

    Thursday, December 11, 2014 9:56 PM

All replies

  • Hello,

    Thank you for your question.

    I am trying to involve someone familiar with this topic to further look at this issue.

    Regards,

    George Zhao
    Forum Support
    ________________________________________
    Come back and mark the replies as answers if they help and unmark them if they provide no

    help.
    If you have any feedback on our support, please click "tnfsl@microsoft.com"

      
    Friday, December 12, 2014 7:59 AM
  • Hello Wayne,

    Apologies for the delay.

    I went through your post and tried to reproduce the issue. I was able to reproduce it. Based on its complexity and as it requires more in-depth analysis, your question falls into the paid support category which requires a more in-depth level of support.


    Please visit the below link to see the various paid support options that are
    available to better meet your needs.
    http://support.microsoft.com/default.aspx?id=fh;en-us;offerprophone

    Thanks,

    Anush

    Tuesday, January 13, 2015 5:58 PM
  • I know I'm answering late on this, but I resolved a similar issue (same error but running excel from a .Net app) by making sure VBA was installed correctly on the target machine. 

    Control Panel->Programs and Features->Uninstall a Program... find your Office install,  Right-click and select "change" ->Add Remove Features->Office Shared Features->Visual Basic for Applications->Run From My Computer
    • Edited by RussBNYM Monday, December 19, 2016 7:50 PM Typo
    Monday, December 19, 2016 7:45 PM