I have been upgraded at work to Office 2013, and I find that Excel 2013 has a problem with screen refreshing.
While a macro runs, I turn off screen updating for speed, then turn it back on at the end. Been working fine in 2007 for years. However with Excel 2013, the ribbon does not get repainted, including the "File / HOME / INSERT / ..." line and the minimise/size/close
"buttons" [_^X] in the top right corner.
This area seems to be white (or maybe a light shade of grey). There are no active areas left, so one cannot click where it expects something (such as "close", or any ribbon element) to cause anything to happen. I've tried searching Microsoft etc for news on
a fix but no joy (it could be my poor search thoughts that doesn't find anything).
..
Has anyone else run across this screen refresh issue?
..
Excel is patched up to date, so there's no outstanding fixes to be applied. I found by experimenting the only way to get things restored is to run a quick macro at the end to resize the Excel window then put it back the way it was.
- Using a macro to minimise the ribbon (twice .. it toggles the setting) does not fix the display problem, I just end up with cloned 'picture' of the formula bar area above the real one, and still no ability to click on anything to "do something".
- If I don't turn off screen updating, the problem does not occur .. but ... the macro runs very slow (as one would expect) so is not the solution.
- Until the real cause is found & fixed, I have had to write this simple VBA macro that I call at the end of the main macro to nullify the problem, but shouldn't have to do this. It does cause a quick flicker but at least Excel remains usable after the macro
runs.
Sub Repaint4Excel_Ribbon_Bug()
' THE FOLLOWING CODE ALL DUE TO EXCEL 2013 BUG ... force the window to shrink and restore back to get the ribbon etc painted correctly...
wk_Curr_Window_State = Application.WindowState
wk_Curr_Window_Width = Application.Width
wk_Curr_Window_Height = Application.Height
Application.WindowState = xlNormal 'Collapse the excel window
Application.Width = 225 ' make the window really small to force Excel rethink ribbon content ...
Application.Height = 271.5 ' both vertically and horizontally
' now restore the original window settings
Application.Width = wk_Curr_Window_Width
Application.Height = wk_Curr_Window_Height
Application.WindowState = wk_Curr_Window_State
End Sub