Excel 97 introducerede nye brugerformularer. Lær mig på engelsk, hvordan jeg opretter og bruger en liste.
MrExcel afsluttede for nylig en brugerdefineret ansøgning til en af vores læsere. I denne Excel-app ville brugeren indtaste 150 datapunkter for et bestemt delnummer på arket.
1. Ved et klik på en knap er dette delnummer og de tilknyttede dataværdier forpligtet til en database på Sheet2. Dette var fint, men så havde vi brug for en måde, hvorpå brugeren kunne hente en post fra ark 2, så de kunne gennemgå posterne. Jeg ville tillade brugeren at åbne en formular med en rulleliste, der viser alle elementerne på arket
2. Brugeren kunne rulle igennem, vælge et element, og så trak jeg disse værdier fra ark 2 op til ark 1.
Som mange af jer begyndte jeg at skrive Excel-makroer i Excel 5.0. Hele denne makroeditor i Excel 97 er lidt skræmmende. For denne uges tip vil jeg vise dig trin for trin hvordan du opretter en liste til dette projekt. Fokus i denne uge er bare på kombinationsboksen. Målgruppen er en, der kender det grundlæggende i Excel-makroer, men som aldrig har brugt en formular til at interagere med en makro.
Første trin: Jeg ændrede de eksisterende makroer, så når de tilføjede en post til ark2, ville makroen navngive området, der indeholder delnumrene, der skulle hedde "PartList". Der er en overskrift i celle A1 med det første element i celle A2. Jeg brugte kommandoen Slut til at finde den sidste række:
LastRow = Range("A6000").End(xlUp).Row ActiveWorkbook.Names.Add Name:="PartList", RefersTo:="=Sheet2!$A$2:$A$" & LastRow
Andet trin: Layout formularen til listeboksen. Følg disse trin:
- Start Visual Basic Editor ved at trykke på alt-F11
- Vælg Indsæt> Brugerformular i menuen. Editoren skal give dig en blank UserForm1.
- Hvis du ikke kan se egenskaberne User-Form1 i nederste venstre hjørne, skal du trykke på ikonet "Properties Window" - det ligner en hånd med en finger, der peger på et hvidt ark.
- Den fjerde post i egenskabsvinduet er billedtekst. Lige nu vil billedteksten være UserForm1. Klik på feltet til højre for billedtekst i vinduet Egenskaber, og skriv en ny titel til formularen. Jeg kaldte min "Vælg et delnummer, der skal gennemgås". Jeg efterlod alle de andre egenskaber til formularen i deres standardtilstand.
Oprettelse af listefelt ved hjælp af brugerformular - Klik et vilkårligt sted i brugerformularen igen, så vises kontrolværktøjskassen.
- I boksen Kontrolelementer skal du vælge bogstavet A. Klik og træk for at oprette en etiketboks øverst i formularen. Det er som standard at have en billedtekst med Label1. Klik inde i tekstfeltet igen, og du kan redigere billedteksten. Sæt instruktioner til brugeren her: "Vælg et element fra listen nedenfor, og klik på OK for at gennemgå værdierne".
- Klik på formularen, men uden for etiketboksen, og du vil se kontrolværktøjskassen igen. Det fjerde element i øverste række er et kombinationsfeltværktøj. Klik på dette, og træk brugerformularen ind for at oprette et kombinationsfelt. Her vises listen over delnumre. Standardnavnet er ComboBox1.
Kombikasseegenskaber - Egenskabsvinduet viser dig nu egenskaberne til ComboBox1. Rul ned gennem egenskaberne, indtil du ser ejendommen RowSource. For egenskaben RowSource skal du skrive = Sheet2! PartList
- Du kan nu køre en hurtig test for at sikre, at tingene fungerer korrekt. Klik på titellinjen i din brugerformular for at vælge hele formularen. Klik nu på "play" -ikonet (det ligner afspilningsknappen på din videobåndoptager). Du returneres til din Excel-projektmappe og har vores enkle brugerformular. Hvis du klikker på rullemenuen med varenummer, skal du se en liste med gyldige varenumre. Vælg en, og den forbliver i kombinationsboksen. Indtil videre ikke for spændende. Klik på det lille X i øverste højre hjørne for at afvise feltet.
- Gå tilbage til Visual Basic-editoren. Klik på brugerformularen for at få vist kontrolværktøjskassen. Klik på CommandButton-værktøjet, og tegn en knap. Skift billedteksten til at være OK ved hjælp af vinduet Egenskaber - CommandButton1.
- Tegn en anden knap og mærk den Annuller.
- Vi er næsten færdige. Lad os binde en lille smule kode til knappen Annuller. Højreklik på knappen Annuller, og vælg "Vis kode". Editor redigerer dine Sub- og End Sub-udsagn. Indtast en linie kode mellem dem:
UserForm1.Hide
- Ja, det er alt, hvad der er at tildele kode til en knap. For at komme tilbage til brugerformularen skal du dobbeltklikke på ordene UserForm1 i projektvinduet. (Kan du ikke se projektvinduet? Klik på Project Explorer-ikonet lige til venstre for ikonet Egenskaber.)
- For at afslutte brugerformular 1, lad os gøre noget med knappen OK. Når brugeren klikker OK, vil jeg have, at værdien fra listeboksen skal vises i ark1 celle A2, og så vil jeg starte en makro, jeg tidligere havde skrevet, kaldet ReviewItem. Højreklik på OK-knappen, og vælg Vis kode. Indtast denne kode for Private Sub CommandButton1_Click ():
Worksheets("Sheet1").Range("A2") = UserForm1.ComboBox1.Value UserForm1.Hide ReviewItem
Tillykke! Du er færdig med din første brugerformular. For at få formularen til at vises skal du køre en makro med denne linje:
UserForm1.Show
Formularen vil se sådan ud: