Fastställande Makro Knapp Beteende i skyddade kalkylblad

December 2

Robin ställde en fråga om en oddity i Excel. Hon skapar ett kalkylblad som innehåller en knapp dras med hjälp av verktygsfältet Formulär, och tilldelar ett makro till knapp. Knappen fungerar bra tills kalkylbladet är skyddat, då hela övre delen av kalkylbladet fungerar som en knapp. (Handen ikonen visas oavsett var du flyttar musen, och när du klickar på makro utförs-du inte behöver klicka på knappen själv.)

Problemet uppstår inte med alla objekt från verktygsfältet Formulär, men endast sker under vissa omständigheter. Det inträffar främst eftersom en makroknapp är associerad med en cell (t.ex. cell B2), och därefter cellen raderas. Detta innebär att knappen är i huvudsak "lös", så Excel är förvirrad om var knappen tillhör. När kalkylbladet är skyddat, agerar Excel konstigt eftersom den anser att knappen är "överallt", eftersom det inte riktigt vet var knappen tillhör.

Den uppenbara lösningen är att se till att makroknappen alltid är fäst till en cell som inte får utgå. Ta bort skyddet arbetsboken, välj flisa av knappen nära kolumnrubrikerna, och flytta den till en cell som du vill associera den med. Reprotect kalkylbladet och udda beteende bör försvinna.

Om du inte kan se knappen som orsakar problemet, kan det bero på att det är för litet. Lösningen på denna situation är att köra ett makro som söker för alla knapparna i kalkylbladet och gör dem synliga. På den oskyddade kalkylblad, kör följande:

Sub CheckShapes ()
Dim myShape Som Shape
För varje myShape I ActiveSheet.Shapes
Med myShape
Om .Height <2 Då .Height = 20
Om .Width

De makro steg genom alla former i kalkylbladet och, om de har en höjd eller bredd mindre än 2 pixlar, ökar deras höjd och bredd så att de är synliga. Nu ska du kunna se makroknappen och kan dra den till en plats i kalkylbladet eller radera det.

ExcelTips är din källa för kostnadseffektiv Microsoft Excel utbildning. Detta tips (2830) gäller för Microsoft Excel 97, 2000, 2002, och 2003.