Excel 2007 bug caused by latest security patch KB973593
I just installed KB973593 (Nov 2009 not 2007), I cannot replicate the
problem you describe in 2007 SP2. I did this
Renamed a sheet to "myName"
populated the sheet with some data, actually three tables
put a Forms button on the sheet linked to a macro with
Application.Worksheets("myName").Protect
I ran the macro, I did not see any "bleeding"
I unprotected the sheet, copied the button to another sheet and tried again
(ie to protect a non-active sheet, again all fine. Intuitively I did not
expect a problem
Application.Worksheets("myName")
and
ActiveSheet
both return an object reference to a sheet. Once the reference is created
the syntax used to make it is irrelevant. The only thing that might be
different for some actions is whether the sheet is active or not (you didn't
say).
Try this -
Dim ws As Worksheet
Set ws = ActiveSheet
ws.Protect
and then
Set ws = Worksheets("worksheet name")
ws.Protect
Any difference ?
If you are still getting problems post back with full details how others may
replicate your scenario, including any particular data, formatting, shapes
on the sheet (if relevant), sheet name, and anything else that is
specifically required to reproduce your problem, eg some other code in your
macro. Obviously restrict to the minimum needed.
Regards,
Peter T
"Steve Smithfield" wrote in message
...
The security patch released on 11th November for Excel 2007 causes a
significant problem with Excel 2007 VBA applications.
The bug is related to protecting and unprotecting worksheets.
The statements ActiveSheet.Protect and ActiveSheet.Unprotect work fine.
However the statement Application.Worksheets("worksheet name").Protect
no longer works correctly. Whilst it protects the sheet (and the
unprotect statement unprotects the sheet) it causes content from sheets
which are not selected to bleed into the selected sheet. So if you run a
VBA macro, eg by pressing a button on a sheet, and the macro runs the
Application.Worksheets("worksheet name").Protect statement bits of
other non-selected sheets bleed in the currently selected sheet.
It's clearly an Excel bug as all content which has bleeded into the sheet
will vanish if you simply minimize the workbook and immediately maximize
it again. Or simply select another sheet then go back to the original
sheet.
ie it's cosmetic but you end up with a hell of a mess.
I have tested this with multiple Excel applications on Windows XP (Dell
desktop) and Vista. (Acer laptop).
I removed KB973593 and the problem vanished.
I re-installed KB973593 and the problem came back.
It's obviously possible to work around the problem, but when you have a
large number of applications it's a lot of work. Given protecting sheets
this way is very common and perfectly good practice I hope Microsoft can
issue a fix ASAP.
|