Användbar information i statusfältet

Någon gillar, men jag behöver personligen ett statusfält bara i 2-3 fall:

  • efter filtrering visar den antalet värden som återstår efter valet
  • när ett område är markerat visar det summan, medelvärdet och antalet valda celler
  • i fallet med tunga filer kan du se framstegen med att räkna om formler i boken.

Inte så mycket för en linje som tar upp nästan hela skärmens bredd och hänger på den hela tiden. Låt oss försöka utöka den här blygsamma listan och lägga till några fler användbara funktioner till den 🙂

Allmänna principer för hantering av statusfältet

Att hantera statusfältet med Visual Basic är mycket enkelt. För att visa din text i den kan du använda ett enkelt makro:

Sub MyStatus() Application.StatusBar = "Upp!" Avsluta Sub  

Efter att ha kört den får vi:

Användbar information i statusfältet

För att återställa det ursprungliga tillståndet för statusfältet behöver du samma korta "anti-makro":

Sub MyStatus_Off() Application.StatusBar = False End Sub  

I grundversionen, som du kan se, är allt väldigt enkelt. Låt oss nu försöka utveckla idén...

Adress till det valda området i statusfältet

 I det övre vänstra hörnet av Excel-fönstret i formelfältet kan du alltid se adressen till den aktuella cellen. Men om ett helt intervall väljs, kommer vi tyvärr inte att se urvalsadressen där – samma enda aktiva cell visas:

Användbar information i statusfältet

För att lösa detta problem kan du använda ett enkelt makro som visar adressen till det valda området i statusfältet. Dessutom bör detta makro startas automatiskt, med alla ändringar i urvalet på valfritt ark - för detta kommer vi att placera det i händelsehanteraren Urval Ändra vår bok.

Öppna Visual Basic Editor med knappen med samma namn på fliken utvecklare (Utvecklaren) eller kortkommandon Vänster Alt+F11. Hitta din bok i det övre vänstra hörnet av projektpanelen och öppna modulen i den genom att dubbelklicka Denna bok (Denna arbetsbok):

Kopiera och klistra in följande makrokod i fönstret som öppnas:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = "Выделено: " & Selection.Address(0, 0) End Sub  

Nu, när något område är valt (inklusive mer än ett!), kommer dess adress att visas i statusfältet:

Användbar information i statusfältet

För att förhindra att adresserna för flera intervall som valts med Ctrl slås samman, kan du lägga till en liten förbättring – använd funktionen Ersätt för att ersätta ett kommatecken med ett komma med ett mellanslag:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = "Выделено: " & Replace(Selection.Address(0, 0), ",", ", ") End Sub  

Antal markerade celler i statusfältet

När något område är markerat visas antalet icke-tomma markerade celler på höger sida av statusfältet som standard. Ibland behöver du veta antalet tilldelade. Denna uppgift kan också utföras med ett enkelt makro för att hantera SelectionChange-bokhändelsen, som i föregående exempel. Du behöver ett makro som:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim CellCount As Variant, rng As Range For Every rng In Selection.Areas 'Iterera genom alla val RowsCount = rng.Rows.Count 'antal rader ColumnsCount = rng.Columns . Räkna 'antal kolumner CellCount = CellCount + RowsCount * ColumnsCount 'ackumulera det totala antalet celler Nästa 'visas i statusfältet Application.StatusBar = "Vald: " & CellCount & " celler" End Sub  

Detta makro går igenom alla Ctrl-markerade områden (om det finns fler än ett), lagrar antalet rader och kolumner i varje område i variablerna RowsCount och ColumnsCount och ackumulerar antalet celler i variabeln CellCount, som sedan visas i statusfältet. På jobbet kommer det se ut så här:

Användbar information i statusfältet

Naturligtvis kan du kombinera detta och föregående makron för att visa både adressen för det valda området och antalet celler samtidigt. Du behöver bara ändra en näst sista rad till:

Application.StatusBar = "Vald: " & Ersätt(Selection.Address(0, 0), ",", ", ") & " - totalt " & CellAntal & " celler"  

Då blir bilden helt underbar:

Användbar information i statusfältet

Jag tror att du förstår idén. Föreslå i kommentarerna – vad mer skulle vara användbart att visa i statusfältet?

  • Vad är makron, hur de fungerar, hur man använder och skapar dem
  • Bekvämt koordinatval på ett Excel-ark
  • Hur man gör komplexa formler mer visuella

Kommentera uppropet