Excel-datumväljare

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äljare

Anta 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.