Fråga en expert Hur tvinga man användaren att mata in ett värde. |
||
Frågan: Hur hindrar man att användaren flyttar markören från en cell utan att ha matat in något värde? Svar: När markören flyttas till en ny cell aktiveras händelse 'Worksheet_SelectionChange'. Problemet då är att man inte vet vilken cell markören befann sig i innan. Genom att i händelsen alltid spara den aktuella cellens namn i en global variabel kan man vid varje aktivering kontrollera den föregående cellens innehåll. Ovanstående metod fungerar för alla sätt att förflytta markören förutom den första därför att den globala variabeln inte har ett värde innan den första förflyttningen ha skett. Enklast är att kontrollera den första obligatoriska cellens innehåll när den globala variabeln inte har något värde. När man väl upptäckt att den förgående cellen saknar ett värde bör man upplysa användaren om detta innan markören flyttas tillbaka till cellen. När markören flyttas tillbaka kommer händelsen att aktiveras på nytt och då skulle en evighetsslinga skapas. Detta löser man genom att kontrollera om cellen man ska flytta markören till är lika med cellen som aktiverade händelsen. Kod exempel: Option Explicit ' Skapa en global variabel för cellen med fokus. Public FranCell As String koden ovan förutses finnas på kodsidan till bladet med namn 'Blad1'. |