Excel Data Picker - Cum se introduce Data Selector (Calendar) în Excel?

Cum se introduce Data Picker în Excel?

Pentru a insera calendarul drop-down, vom folosi un control ActiveX, care este „Microsoft Data and Time Picker Control 6.0 (SP6)” .

Să presupunem că trebuie să păstrăm date pentru angajații unei companii. Există mai multe domenii precum

  • Cod Emp
  • Nume Emp
  • Data aderării Emp
  • Departamentul Emp

Pentru a introduce date în MS Excel, am creat următorul format.

Pentru a introduce data de înscriere Emp, trebuie să creăm un calendar derulant, astfel încât utilizatorul să fie mai ușor să introducă datele de înscriere.

Pentru a crea un calendar drop-down, pașii sunt prezentați mai jos -

Trebuie să inserăm un „control ActiveX” numit „Microsoft Data and Time Picker Control 6.0 (SP6)” . Pentru a insera, vom folosi comanda „Insert” din grupul „Controls” din „Developer”.

Dacă fila „Dezvoltator” nu este vizibilă, mai jos sunt pașii de urmat pentru a face același lucru vizibil.

  • Pasul 1: sub meniul „Fișier” , alegeți „Opțiuni”
  • Pasul 2: Se va deschide o casetă de dialog numită „Opțiuni Excel” . Alegeți „Personalizați panglica” din marginea din stânga a casetei de dialog. Bifați caseta pentru fila „Dezvoltator” și faceți clic pe „OK”.
  • Pasul 3: Acum, putem vedea fila „Dezvoltator” la ultima din panglică.
  • Pasul 4: Alegeți „Mai multe controale” din comenzile ActiveX.
  • Pasul 5: Alegeți „Microsoft Data and Time Picker Control 6.0 (SP6)” din listă și faceți clic pe „OK”.
  • Pasul 6: Faceți clic oriunde pe foaia de lucru pentru a crea calendarul derulant.
  • Pasul 7: Faceți clic dreapta pe „Data Picker” și alegeți „Properties” din listă.
  • Pasul 8: Schimbați valoarea din „False” în „True” pentru proprietatea „CheckBox” , astfel încât să poată fi acceptate și valori nule. Închideți caseta de dialog „Proprietăți” .
  • Pasul 9: Faceți din nou clic dreapta pe Data Picker și alegeți „View Code” din meniul contextual.
  • Pasul 10: În „Visual Basic Editor”, putem vedea că un anumit cod este deja scris. Înlocuiți codul cu următorul cod.

Cod:

Private Sub Worksheet_SelectionChange (ByVal Target As Range) With Sheet1.DTPicker1 .Height = 20 .Width = 20 If Not Intersect (Target, Range ("C: C")) is Nothing Then .Visible = True .Top = Target.Top. Stânga = Target.Offset (0, 1) .Left. LinkedCell = Target.Address Else .Visible = False End If End With End Sub
  • Pasul 11: Prima declarație din cod îi spune Compilatorului MS Excel să ruleze codul ori de câte ori este selectată o nouă celulă (Selecția este modificată). Celula selectată este trimisă la procedura Sub ca „Țintă”.
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
  • Pasul 12: Aceste declarații stabilesc înălțimea și lățimea selectorului de date la 20 de puncte în excel. Se poate observa că am folosit operatorul „Cu” astfel încât să nu avem nevoie să ne referim la DTPicker1 din nou și din nou.
 Cu Sheet1.DTPicker1 .Height = 20 .Width = 20
  • Pasul 13: următoarea clauză „Dacă” stabilește criteriile conform cărora, dacă este selectată orice celulă în coloana „C” , numai atunci Data Picker obține vizibilitate. Am folosit funcția „Intersectează” deoarece această funcție verifică dacă am selectat vreo celulă din coloana C, apoi această funcție va returna adresa; în caz contrar, valoarea ar fi nulă.
Dacă nu se intersectează (țintă, interval ("C: C")) nu este nimic atunci. Vizibil = Adevărat
  • Pasul 14: proprietatea „Sus” a Data Picker este setată ca egală cu valoarea proprietății „Sus” a celulei selectate. Înseamnă că acest lucru va merge împreună cu marginea superioară a celulei selectate.
.Top = Target.Top
  • Pasul 15: Această declarație stabilește proprietatea stângă a selectorului de date ca fiind egală cu cea a următoarei celule din dreapta a celulei selectate (Distanța marginii stângi a coloanei D de la extrema stângă a foii de lucru). Pentru a obține referința următoarei celule din dreapta, am folosit funcția „Offset” cu 0 ca argument de rând și 1 ca argument de coloană, deoarece aceasta va primi o referință la celula din coloana următoare.
.Left = Target.Offset (0, 1) .Left
  • Pasul 16: Această declarație leagă Selectorul de date cu celula țintă, astfel încât oricare valoare este selectată în calendarul derulant care este afișat în celulă.
.LinkedCell = Target.Address
  • Pasul 17: Instrucțiunea „Else” îi spune compilatorului să nu afișeze Data Picker atunci când este selectată orice celulă, cu excepția celei din coloana C.
Altfel .Vizibil = False
  • Pasul 18: În final, închidem „Dacă”.
End If
  • Pasul 19: În cele din urmă, trebuie să închidem „Cu”.
Se termina cu
  • Pasul 20: Acum, procedura secundară se va încheia.
Sfârșitul Sub

Asigurați-vă că salvăm fișierul cu extensia „.xlsm” deoarece salvează codul VBA pe care l-am scris și vom putea rula acest cod când orice celulă este selectată în coloana 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.
  • După ce am scris codul VBA, trebuie să salvăm fișierul cu extensia „.xlsm” (Excel Macro-Enabled Workbook); în caz contrar, codul VBA nu ar rula.

Articole interesante...