Excel-användarformulär - Excel-tips

Innehållsförteckning
Excel 97 introducerade nya användarformulär. Lär mig på engelska hur jag skapar och använder en listruta.

MrExcel slutförde nyligen en anpassad applikation för en av våra läsare. I denna Excel-app skulle användaren ange 150 datapunkter för ett visst artikelnummer på arket.

1. Klicka på en knapp, detta artikelnummer och tillhörande datavärden förbinds till en databas på Sheet2. Det här var bra, men då behövde vi ett sätt för användaren att hämta en post från ark 2 så att de kunde granska posterna. Jag ville låta användaren öppna ett formulär med en rullgardinsmeny som visar alla föremål på arket

2. Användaren kunde bläddra igenom, välja ett objekt och sedan skulle jag dra dessa värden från ark 2 upp till ark 1.

Som många av er började jag skriva Excel-makron i Excel 5.0. Hela denna makroredigerare i Excel 97 är lite skrämmande. För den här veckans tips visar jag dig steg för steg hur du skapar listrutan för det här projektet. Fokus den här veckan är bara på kombinationsrutan. Målgruppen är någon som känner till grunderna i Excel-makron, men som aldrig har använt ett formulär för att interagera med ett makro.

Första steget: Jag ändrade de befintliga makron så att när de lade till en post till ark2, skulle makrot namnge området som innehåller artikelnumren som ska kallas "PartList". Det finns en rubrik i cell A1, med det första objektet i cell A2. Jag använde kommandot Slut för att hitta den sista raden:

LastRow = Range("A6000").End(xlUp).Row ActiveWorkbook.Names.Add Name:="PartList", RefersTo:="=Sheet2!$A$2:$A$" & LastRow

Andra steget: Lägg upp formuläret för listrutan. Följ dessa steg:

  • Starta Visual Basic Editor genom att trycka på alt-F11
  • Från menyn väljer du Infoga> Användarformulär. Redaktören ska ge dig en tom UserForm1.
  • Om du inte ser rutan Properties-UserForm1 i det nedre vänstra hörnet, tryck på ikonen "Properties Window" - det ser ut som en hand med ett finger som pekar på ett vitt ark.
  • Den fjärde posten i egenskapsfönstret är Caption. Just nu kommer bildtexten att vara UserForm1. Klicka i rutan till höger om Bildtext i fönstret Egenskaper och skriv en ny titel för formuläret. Jag ringde mina "Välj ett artikelnummer att granska". Jag lämnade alla andra egenskaper för formuläret i standardläge.
    Skapa listruta med användarformulär
  • Klicka var som helst i användarformuläret igen så visas kontrollverktygslådan.
  • Välj bokstaven A. Klicka på och dra för att skapa en etikettruta högst upp i formuläret. Det är som standard att ha en bildtext av Label1. Klicka inuti textrutan igen så kan du redigera bildtexten. Lägg instruktioner till användaren här: "Välj ett objekt från listan nedan och klicka på OK för att granska värdena".
  • Klicka på formuläret, men utanför etikettrutan så visas kontrollverktygslådan igen. Det fjärde objektet i den översta raden är ett kombinationsrutverktyg. Klicka här och dra in användarformuläret för att skapa en kombinationsruta. Det är här listan över artikelnummer kommer att visas. Standardnamnet är ComboBox1.
    Kombinationsegenskaper
  • Egenskapsfönstret visar nu egenskaperna för ComboBox1. Bläddra ner genom egenskaperna tills du ser egenskapen RowSource. För egenskapen RowSource, skriv = Sheet2! PartList
  • Du kan nu köra ett snabbtest för att se till att saker och ting fungerar som de ska. Klicka på titelfältet i ditt användarformulär för att välja hela formuläret. Klicka nu på "spela" -ikonen (det ser ut som uppspelningsknappen på din videobandspelare). Du kommer tillbaka till din Excel-arbetsbok och har vårt enkla användarformulär. Om du klickar på rullgardinsmenyn för artikelnummer bör du se en lista med giltiga artikelnummer. Välj en så förblir den i kombinationsrutan. Hittills inte alltför spännande. Klicka på det lilla X i det övre högra hörnet för att avvisa rutan.
  • Återgå till Visual Basic-redigeraren. Klicka på användarformuläret för att visa kontrollverktygslådan. Klicka på CommandButton-verktyget och rita en knapp. Ändra bildtexten så att den är OK med fönstret Egenskaper - CommandButton1.
  • Rita en andra knapp och märk den Avbryt.
  • Vi är nästan färdiga. Låt oss knyta lite kod till knappen Avbryt. Högerklicka på knappen Avbryt och välj "Visa kod". Redaktören kommer att ställa in dina Sub- och End Sub-uttalanden. Mellan dem skriver du en kodrad:
    UserForm1.Hide
  • Ja, det är allt som finns att tilldela kod till en knapp. För att komma tillbaka till användarformuläret, dubbelklicka på orden UserForm1 i projektfönstret. (Ser du inte projektfönstret? Klicka på Project Explorer-ikonen, bara till vänster om ikonen Egenskaper.)
  • För att avsluta användarformulär 1, låt oss göra något med OK-knappen. När användaren klickar på OK vill jag att värdet från listrutan ska visas i ark1 cell A2 och sedan vill jag starta ett makro som jag tidigare hade skrivit och heter ReviewItem. Högerklicka på OK-knappen och välj Visa kod. Ange den här koden för Private Sub CommandButton1_Click ():
    Worksheets("Sheet1").Range("A2") = UserForm1.ComboBox1.Value UserForm1.Hide ReviewItem

Grattis! Du har avslutat ditt första användarformulär. För att få formuläret att visas kör du ett makro som har den här raden:

UserForm1.Show

Formuläret ser ut så här:

Färdig användarform

Intressanta artiklar...