http://bugs.winehq.org/show_bug.cgi?id=25762
Summary: Excel crashes trying to run macros Product: Wine Version: 1.3.8 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: oleaut32 AssignedTo: wine-bugs@winehq.org ReportedBy: dimesio@earthlink.net
Opening a new bug now that it's clear bug 25754 is not the same problem.
All versions of Excel that I tested (97, 2003, 2007, and 2010) crash trying to run a macro.
To reproduce, go to Tools, Macro (in 97 and 2003) or View, Macro (in 2007 and 2010) and select record. Type something in a cell and press enter, then click the stop button. Go back to the Macro menu and run the macro that was recorded.
Regression test results:
c0f120db5d6b72917dd9bb1e4630f2b6ff6960a6 is first bad commit commit c0f120db5d6b72917dd9bb1e4630f2b6ff6960a6 Author: Andrew Eikum aeikum@codeweavers.com Date: Tue Nov 9 16:04:10 2010 -0600
oleaut32: Search inherited interfaces again in ITypeComp::Bind.
:040000 040000 3b22bce11b0e5dc9df0c30658009c45a0bae7955 add823888e853fc234e1991a6aed674b456c56e8 M dlls
Reverting that commit fixes the crash.
http://bugs.winehq.org/show_bug.cgi?id=25762
Rosanne DiMesio dimesio@earthlink.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression CC| |aeikum@codeweavers.com
http://bugs.winehq.org/show_bug.cgi?id=25762
Andrew Eikum aeikum@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|regression |
--- Comment #1 from Andrew Eikum aeikum@codeweavers.com 2011-01-13 08:34:04 CST --- Okay, I spent some time looking at this this morning and I think it's not actually a regression.
There are two commits involved here. The first, 3173305e, modifies ITypeComp::Bind to not return an error code if it fails to find the member being requested. However, a mistake in the patch introduced a problem, where parent interfaces were no longer being searched when looking for that member. This was fixed a couple of months later in c0f120db.
Before 3173305e, this sequence would cause Excel to crash. Between 3173305e and c0f120db, Excel no longer crashes because it's returning a failure code and not searching parent interfaces. This is "less correct" than the crash. After c0f120db it's back to the original behavior of searching the parent interfaces and subsequently crashing.
So, this isn't a regression caused by that commit. Obviously still a bug, though :)
http://bugs.winehq.org/show_bug.cgi?id=25762
--- Comment #2 from Rosanne DiMesio dimesio@earthlink.net 2011-09-18 07:05:44 CDT --- Still present in 1.3.28.
http://bugs.winehq.org/show_bug.cgi?id=25762
--- Comment #3 from Rosanne DiMesio dimesio@earthlink.net 2012-01-09 09:34:26 CST --- Still present in 1.3.36.
http://bugs.winehq.org/show_bug.cgi?id=25762
--- Comment #4 from Vincent frenchman20@hotmail.com 2012-03-18 10:00:00 CDT --- Created attachment 39439 --> http://bugs.winehq.org/attachment.cgi?id=39439 Problem remains in 1.5.0
Wine does not support this command from VBA: Range("A1").Select, where A2 represents any cell. When a macro runs, Excel will freeze once it gets to this command.
Hope this helps!
http://bugs.winehq.org/show_bug.cgi?id=25762
Vincent frenchman20@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |frenchman20@hotmail.com
--- Comment #5 from Vincent frenchman20@hotmail.com 2012-03-18 10:03:53 CDT --- (In reply to comment #4)
Created attachment 39439 [details] Problem remains in 1.5.0
Wine does not support this command from VBA: Range("A1").Select, where *A1 represents any cell. When a macro runs, Excel will freeze once it gets to this command.
Hope this helps!
*A2 should be A1
http://bugs.winehq.org/show_bug.cgi?id=25762
David Sempsrott dsempsro@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dsempsro@gmail.com
--- Comment #6 from David Sempsrott dsempsro@gmail.com 2012-05-12 12:13:41 CDT --- Here's another scenario that might give some leads. I created a macro in Excel 2010 (using the 2003 file format .xls), and then tried to run it in Excel 2007 under Wine 1.4. It ran fine until it got to a statement that was supposed to copy a range of data:
MySheet1.Range("A1").CurrentRegion.Copy MySheet2.Range("A1")
At this point Excel crashed. I reopened the workbook and modified the statement as follows:
MySheet1.Cells(1, 1).CurrentRegion.Copy MySheet2.Cells(1, 1)
That worked. But then it came to the following code:
With MySheet2.Range("K1").Cells .Offset(0, -2).Value = "Status" .Offset(0, -1).Value = "Coverage" .Value = "Test case(s)" .EntireColumn.AutoFilter Field:=1, VisibleDropDown:=True End With
And Excel crashed at the autofilter statement. Then I changed the Range("K1").Cells to Cells(1, 11) and again it worked flawlessly. So it seems fairly clear to me that the Range part is where the problem is -- although apparently it's only methods, and not properties, that don't work.
I did get a complaint from Wine several times about not finding Windows Common Controls: fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
Sorry I'm not very experienced with Wine or VBA, but I hope that might give a few hints as to where the problem might be.
http://bugs.winehq.org/show_bug.cgi?id=25762
--- Comment #7 from Nikolay Sivov bunglehead@gmail.com 2012-05-12 12:23:33 CDT --- Please attach +ole,+typelib,+tid log as a text file running current dev. version 1.5.4.
http://bugs.winehq.org/show_bug.cgi?id=25762
--- Comment #8 from Rosanne DiMesio dimesio@earthlink.net 2012-05-12 20:37:24 CDT --- The log, even compressed, is too big to attach. I've uploaded it here: https://docs.google.com/open?id=0B98fpwZrfFafdVVNTXFoWW12S0U
http://bugs.winehq.org/show_bug.cgi?id=25762
lknutson@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |lknutson@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=25762
Modestas Vainius geromanas@mailas.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |geromanas@mailas.com
--- Comment #9 from Modestas Vainius geromanas@mailas.com 2013-01-12 17:20:12 CST --- Just in case somebody needs to get macros working quickly, the workaround for this bug is use native oleaut32.dll (e.g. from Windows XP installation). It helped for me on wine 1.4.1.
http://bugs.winehq.org/show_bug.cgi?id=25762
asteffey@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |asteffey@gmail.com
--- Comment #10 from asteffey@gmail.com 2013-01-26 17:40:16 CST --- In wine-1.5.22 I was having some trouble with VBA in Excel. Specifically, Excel would crash whenever it tried to autocomplete any of the built-in excel add-ons.
Fixed the problem by using winetricks riched20
The issue seems to be related to http://bugs.winehq.org/show_bug.cgi?id=12458
http://bugs.winehq.org/show_bug.cgi?id=25762
--- Comment #11 from Ulrich Brammer ubrammer@t-online.de 2013-07-20 06:03:34 CDT --- Created attachment 45340 --> http://bugs.winehq.org/attachment.cgi?id=45340 The file contains the debuglog wine.log from calling the macro to the crash.
I made another log of the error with +ole,+typelib,+tid. The log just starts with the call of the Macro1, which moves one cell down.
It was made with wine 1.6 and excel from Office 2000.
http://bugs.winehq.org/show_bug.cgi?id=25762
Rosanne DiMesio dimesio@earthlink.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |christopher.m.penalver@gmai | |l.com
--- Comment #12 from Rosanne DiMesio dimesio@earthlink.net 2013-08-18 07:38:18 CDT --- *** Bug 34287 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=25762
--- Comment #13 from Christopher M. Penalver christopher.m.penalver@gmail.com 2013-08-18 09:16:40 CDT --- Excel Macro crashing reproducible in wine 1.7 on Linux and Mac OSX as per my duplicate http://bugs.winehq.org/show_bug.cgi?id=34287 .
http://bugs.winehq.org/show_bug.cgi?id=25762
--- Comment #14 from Andrew Eikum aeikum@codeweavers.com 2013-08-19 07:48:16 CDT --- Christopher, could you please email the spreadsheet to me at aeikum@codeweavers.com? I'd like to confirm that this is the same issue. Thanks!
http://bugs.winehq.org/show_bug.cgi?id=25762
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |piotr.caban@gmail.com
--- Comment #15 from Piotr Caban piotr.caban@gmail.com 2013-09-03 11:11:39 CDT --- This bug is caused by incorrect FUNCDESC structure returned for IRange::Select function (defined in typelib inside EXCEL.EXE).
In this case both calling convention and number of parameters is incorrect. In order to make EXCEL working only calling convention needs to be changed to FUNC_DISPATCH.
I'll try to find why it's incorrect.
http://bugs.winehq.org/show_bug.cgi?id=25762
--- Comment #16 from Andrew Eikum aeikum@codeweavers.com 2013-09-04 11:48:40 CDT --- Created attachment 45863 --> http://bugs.winehq.org/attachment.cgi?id=45863 oleaut32: Apply TKIND_DISPATCH changes to FUNCDESC results from ITypeComp::Bind
Good find, Piotr! This patch lets the macro run. I'm working on tests.
http://bugs.winehq.org/show_bug.cgi?id=25762
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
http://bugs.winehq.org/show_bug.cgi?id=25762
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |cb1f4c5387c4440460c3a62ff55 | |306e26474ef10 Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #17 from Piotr Caban piotr.caban@gmail.com 2013-09-07 03:33:26 CDT --- It works for me now. Marking as fixed.
http://bugs.winehq.org/show_bug.cgi?id=25762
--- Comment #18 from Andrew Eikum aeikum@codeweavers.com 2013-09-09 07:04:33 CDT --- If you have an Excel spreadsheet with macros that are still failing, please file a new bug and add me to the CC list. Thanks!
http://bugs.winehq.org/show_bug.cgi?id=25762
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #19 from Alexandre Julliard julliard@winehq.org 2013-09-13 13:20:04 CDT --- Closing bugs fixed in 1.7.2.
https://bugs.winehq.org/show_bug.cgi?id=25762
wcrfrench@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wcrfrench@gmail.com
--- Comment #20 from wcrfrench@gmail.com --- How do you apply this fix? I am getting a similar sounding error when I call a worksheet function utilising a named range....
Excel just freezes and then must be forced closed.
For instance:
Sub Run()
Dim Num1 As Integer
Num1 = WorksheetFunction.Counta(Range(Range("A1"),Range("A100")))
End Sub
I am new to Linux and wine btw.
Very grateful for any help, determined not to go back to windows, but desperately need VBA for work!
https://bugs.winehq.org/show_bug.cgi?id=25762
--- Comment #21 from Andrew Eikum aeikum@codeweavers.com --- (In reply to wcrfrench from comment #20)
How do you apply this fix? I am getting a similar sounding error when I call a worksheet function utilising a named range....
Please be sure you're using the latest version of Wine (currently 1.7.27). If you are, you are probably encountering a different bug. Please open a new bug report with details on how to reproduce.
Feel free to add my email to the CC list. I like to be informed of typelib bugs.
https://bugs.winehq.org/show_bug.cgi?id=25762
--- Comment #22 from wcrfrench@gmail.com --- Updating Wine fixed the problem. Many Many Thanks