Hur man samlar in data från UserForms till ett Excel-kalkylblad

Med Excel kan du använda Visual Basic för att lägga till en rad olika funktioner i dina kalkylark, inklusive "UserForms." Genom UserForms kan du visa ett inmatningsformulär för användaren som är separat från huvudkalkylbladet, vilket är användbart för att fånga data från individer som kanske inte känner till kalkylark. Med lite Visual Basic-kod kan du lägga till all denna information i ditt kalkylblad i nya rader.

Definiera dina fält

Starta Excel. Ange namnen på alla fälten du vill fånga på den översta raden, med början från “A1” och arbeta till höger. Klicka på "Utvecklare" och klicka sedan på "Visual Basic." Visual Basic-fönstret visas. Klicka på ”A” -ikonen från verktygslådan och klicka och dra inuti “UserForm1” -fönstret på den plats där du vill att ditt första formulärfält ska gå. Redigera etiketten genom att ändra "Caption" -egenskapen till något mer beskrivande, till exempel "Förnamn". Skapa en etikett för vart och ett av fälten du angav i kalkylbladet.

Lägg till dina textrutor

Välj "TextBox" -ikonen från verktygslådan och dra ut en textruta precis till höger om din första etikett. Om du bara använder några få fält är det acceptabelt att lämna egenskapen “(Namn)” som standard “TextBox1”. Men om du behöver ett stort antal fält kan det bli förvirrande, så du bör redigera dessa så att de matchar de etiketter du redan har skapat. Se till att varje etikett har motsvarande textruta.

Lägg till en Skicka-knapp

Klicka på ikonen "Kommandoknapp" i verktygslådan, som ser ut som en vanlig Windows-knapp. Klicka och dra till den storlek och plats du behöver i UserForm1. Vanligtvis vill du ha detta under eller nära den sista textrutan i ditt formulär. Ändra knappens "Caption" -egenskap till "Skicka data" eller något liknande, vilket indikerar för användaren att de måste klicka på den här knappen för att skicka sina data.

Lägg till Visual Basic-kod

Dubbelklicka på knappen. Ange följande kod mellan “Privat Sub” och “Avsluta Sub”:

eRow = Sheet1.Cells (Rows.Count, 1) .End (xlUp) .Offset (1,0) .Row

Starta sedan en ny rad under denna och ange sedan följande:

Celler (erow, 1) = TextBox1.Text

Om du bytte namn på dina textrutor ändrar du “TextBox1” till det namn du gav den första textrutan. Gör detta för varje inmatningsruta du skapade, starta en ny rad och ange rätt textrutanamn efter behov. För varje ny rad, öka också siffran inom parentes med en. Till exempel kan nästa rad se ut så här:

Celler (erow, 2) = TextBox2.Text

Klicka på "Spela" -knappen högst upp i fönstret för att börja fånga data.