Excel-datumväljare - Hur infogar jag datumväljare (kalender) i Excel?

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)' .

Antag 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 syns, nedan följer stegen 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 (ByVal 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. Vänster = Target.Offset (0, 1) .Vänster .LinkedCell = Target.Address Else .Visible = False End om slut med 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 (valet ä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 ställer in kriterierna att om någon cell väljs i "C" -kolumnen, bara då Datumväljaren blir synlig. Vi har använt funktionen 'Intersect' eftersom den här funktionen kontrollerar om vi har valt någon cell i C-kolumnen, då returnerar denna funktion 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 egenskapens "Topp" för den valda cellen. Det betyder att detta kommer att överensstämma med den valda cellens övre kant.
.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 funktionen 'Offset' 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: I slutändan 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 tillägget '.xlsm' eftersom det 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.

Now, whenever we select any cell in the ‘C’ column, we can see a drop-down calendar at the top right corner of the selected cell. We can open the drop-down calendar by clicking on the down arrow symbol.

We need to click on any date in the calendar in the selected month to enter that date in the selected cell.

We can change month to previous or next using the arrow button placed at the left and right side of the calendar.

We can also click on the month to choose a month from the drop-down.

We can also change year by clicking on year and then using up and down arrows to choose the required one.

Things to Remember

  • ‘Microsoft Date and Time Picker Control 6.0 (SP6)’ is not available for the 64-bit version of MS Excel.
  • Efter att ha skrivit VBA-koden måste vi spara filen med '.xlsm' (Excel Macro-Enabled Workbook); annars skulle inte VBA-koden köras.

Intressanta artiklar...