Hur infogar jag datumväljare i Excel?
För att infoga rullgardinsmenyn använder vi en ActiveX-kontroll som är 'Microsoft Date and Time Picker Control 6.0 (SP6)' .
Du kan ladda ner Excel-mall för datumväljare här - Excel-mall för datumväljareAnta att vi måste behålla data för anställda i ett företag. Det finns flera fält som
- Emp-kod
- Emp-namn
- Emp-anslutningsdatum
- Emp-avdelningen
För att mata in data i MS Excel har vi skapat följande format.
För att ange Emp-anslutningsdatum måste vi skapa en rullgardinsmeny så att det blir lättare för användaren att ange anslutningsdatum.
För att skapa en rullgardinsmeny visas stegen nedan -
Vi måste infoga en 'ActiveX-kontroll' med namnet 'Microsoft Date and Time Picker Control 6.0 (SP6)' . För att infoga använder vi kommandot 'Infoga' under gruppen 'Kontroller' i 'Utvecklare'
Om fliken "Utvecklare" inte är synlig följer du stegen nedan för att göra detsamma synliga.
- Steg 1: Välj "Alternativ" under "Arkiv" -menyn
- Steg 2: En dialogruta med namnet "Excel-alternativ" öppnas. Välj "Anpassa menyfliksområdet" från vänster kant i dialogrutan. Kryssrutan för fliken 'Utvecklare' och klicka på 'OK' .
- Steg 3: Nu kan vi se fliken "Utvecklare" längst upp i menyfliksområdet.
- Steg 4: Välj "Fler kontroller" från ActiveX-kontroller.
- Steg 5: Välj 'Microsoft Date and Time Picker Control 6.0 (SP6)' från listan och klicka på 'OK' .
- Steg 6: Klicka var som helst på kalkylbladet för att skapa rullgardinsmenyn.
- Steg 7: Högerklicka på 'Datumväljare' och välj 'Egenskaper' i listan.
- Steg 8: Ändra värdet från 'False' till 'True' för egenskapen 'CheckBox' så att nullvärden också kan accepteras. Stäng dialogrutan 'Egenskaper' .
- Steg 9: Högerklicka på Datumväljaren igen och välj 'Visa kod' från snabbmenyn.
- Steg 10: I 'Visual Basic Editor' kan vi se att någon kod redan är skriven. Ersätt koden med följande kod.
Koda:
Private Sub Worksheet_SelectionChange (ByVa l Target As Range) With Sheet1.DTPicker1 .Hight = 20 .Width = 20 If Not Intersect (Target, Range ("C: C")) Is Nothing Then .Visible = True .Top = Target.Top .Links = Target.Offset (0, 1). Left .LinkedCell = Target.Adress Else .Visible = False End if End With End Sub
- Steg 11: Det första uttalandet i koden ber MS Excel Compiler att köra koden när en ny cell väljs (markeringen ändras). Den valda cellen skickas till underproceduren som "Target" .
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
- Steg 12: Dessa uttalanden ställer in höjden och bredden på datumväljaren till 20 poäng i excel. Det kan observeras att vi har använt 'With' -operatören så att vi inte behöver hänvisa till DTPicker1 om och om igen.
Med Sheet1.DTPicker1 .Höjd = 20 .Width = 20
- Steg 13: Följande "Om" -sats sätter kriterierna för att om någon cell är markerad i kolumnen "C" , kommer endast Datumväljaren att bli synlig. Vi har använt 'Intersect' -funktionen eftersom den här funktionen kontrollerar om vi har valt någon cell i C-kolumnen, då kommer den här funktionen att returnera adressen annars skulle värdet vara noll.
Om inte skär (mål, intervall ("C: C")) är ingenting då .Visible = True
- Steg 14: "Topp" -egenskapen för Datumväljaren är inställd som lika med "Topp" -egenskapsvärdet för den valda cellen. Det betyder att detta kommer att följa den övre gränsen för den valda cellen.
.Top = Target.Top
- Steg 15: Detta uttalande ställer in den vänstra egenskapen för Datumväljaren som lika med den för nästa högra cell i den valda cellen (Avstånd till vänster kant i D-kolumnen från yttersta vänster på kalkylbladet). För att få referensen till nästa högra cell har vi använt 'Offset' -funktionen med 0 som radargument och 1 som kolumnargument eftersom detta kommer att få en referens till cellen i nästa kolumn.
.Vänster = Mål.Offset (0, 1) .Vänster
- Steg 16: Detta uttalande länkar datumväljaren till målcellen så att vilket värde som väljs i rullgardinsmenyn som visas i cellen.
.LinkedCell = Måladress
- Steg 17: Uttrycket "Annat" säger att kompilatorn inte ska visa datumväljaren när någon cell utom den i kolumnen C är vald.
Annars. Synlig = falskt
- Steg 18: Till slut stänger vi 'If'
Avsluta om
- Steg 19: Äntligen måste vi stänga 'With'
Sluta med
- Steg 20: Nu avslutas underproceduren.
Avsluta sub
Se till att vi sparar filen med '.xlsm' förlängning eftersom den sparar VBA-koden vi har skrivit och vi kommer att kunna köra den här koden när någon cell väljs i kolumnen C.
Nu när vi väljer någon cell i kolumnen 'C' kan vi se en rullgardinsmeny längst upp till höger i den valda cellen. Vi kan öppna rullgardinsmenyn genom att klicka på nedåtpilsymbolen.
Vi måste klicka på valfritt datum i kalendern under vald månad för att ange det datumet i den valda cellen.
Vi kan ändra månad till föregående eller nästa med hjälp av pilknappen placerad till vänster och höger i kalendern.
Vi kan också klicka på månaden för att välja en månad från rullgardinsmenyn.
Vi kan också ändra år genom att klicka på år och sedan använda upp- och nedpilarna för att välja önskat.
Saker att komma ihåg
- 'Microsoft Date and Time Picker Control 6.0 (SP6)' är inte tillgängligt för 64-bitarsversionen av MS Excel.
- Efter att ha skrivit VBA-kod måste vi spara filen med tillägget '.xlsm' (Excel Macro-Enabled Workbook), annars skulle VBA-kod inte köras.