Excel UserForms Tutorial

November 20

linguaggio di scripting di Microsoft Excel, Visual Basic, non solo aumenta la funzionalità di Excel, ma anche può fare che la funzionalità più facile da usare - attraverso moduli utente. moduli utente sono piccole finestre che gli utenti possono immettere i dati del foglio di lavoro attraverso.

Creare il modulo

Iniziare a creare un modulo utente inserendo l'IDE di Visual Basic (ambiente di sviluppo integrato): dal foglio di lavoro, premere il tasto "alt" Excel - "F11". Creare un nuovo modulo utente accedendo "Inserisci"> "form".

Trascinare e rilasciare i seguenti controlli dalla casella degli strumenti nel form: due caselle di testo, la seconda sotto la prima. Aggiungere un pulsante di comando al di sotto delle caselle di testo e due controlli Label, ciascuna alla sinistra di una casella di testo. Nella finestra delle proprietà, modificare la didascalia dell'etichetta superiore a "Nome", e la didascalia dell'etichetta inferiore per "Indirizzo e-mail." Modificare la didascalia del pulsante di "Invia".

Inserisci il codice

Ora scrivere il codice che tira i dati dalla forma e lo inserisce in un foglio di lavoro.

Dalla finestra di progettazione modulo, fare doppio clic sul pulsante "Invia". Il cursore si sposta l'evento Button1_Click, che spara quando il pulsante viene premuto durante l'esecuzione del programma.

Nel caso in Button1_Click, inserire il seguente codice di programma:

r Dim come gamma

Insieme R = Range ( "a65536"). Fine (xlUp)

Impostare r = r.Offset (1, 0)

r.Value = Textbox1.value

Impostare r = r.Offset (0, 1)
r.Value = TextBox2.Value

Scrivi un piccolo subroutine che visualizza il nuovo modulo di utente. All'interno della IDE, fare doppio clic sull'icona ThisWorkbook nel riquadro del progetto. Nella finestra del codice, entrare in questo nuovo subroutine:

Public Sub MAC1 ()
UserForm1.Show

End Sub

Eseguire il programma dal foglio di lavoro di Excel andando allo sviluppatore> Macro, selezionando "mac1," e premendo il pulsante "Esegui". Inserisci alcuni dati del foglio di lavoro con il modulo utente.

Esplora il Programma

La prima linea di Button1_Click dichiara una variabile gamma. Un intervallo è un insieme di celle del foglio di lavoro. Potrai inserire i dati in tale intervallo con il seguente codice l'istruzione Dim.

. La dichiarazione insieme R = Range ( "a65536") End (xlUp) definisce un intervallo di una cella: la cella più a sinistra della precedente riga di dati. Questo non è un pezzo intuitiva dall'aspetto di codice, quindi non preoccupatevi se non si capisce che a prima vista. Suddividere l'istruzione per vedere come funziona. La porzione Range ( "a65536") specifica chiaramente la a65536 cellulare - strada nella parte inferiore della prima colonna del foglio di lavoro. Il pezzo successivo, End (xlUp), è un altro intervallo: è dove il cursore finirebbe se si ha inizialmente sulla cella a65536, premuto il tasto di fine chiamata, e poi premuto la freccia in su.

Se si dovesse inserire dati in quella cella, ci si sovrascrive la riga precedente. Ecco perché è necessario l'istruzione successiva: insieme R = r.Offset (1, 0). Tale affermazione ridefinisce il campo per essere una riga verso il basso (e zero colonne a destra) da dove era. La gamma "r" è ora nella prima cella vuota sotto tutte le righe di dati esistenti. Ecco dove il codice può iniziare a inserire una nuova riga di dati.

Riempimento cellulare dati da Forma ingresso

Le prossime dichiarazioni spostare i dati del modulo per il campo il codice appena identificato come i primi vuote celle sotto la riga di dati precedente. r.Value = Textbox1.value imposta il valore della cella vuota con il valore dalla prima casella di testo. La cella successiva è una colonna a destra, e insieme R = r.Offset (0, 1) ridefinisce il campo per essere quella cella. Gli argomenti 0 e 1 si riferiscono a 0 le righe verso il basso e 1 cella a destra di ( "r") posizione della gamma precedente.

Riempire le due colonne completa una riga di dati. Quando l'utente fa clic sul pulsante, l'evento Button1_Click eseguirà di nuovo. L'insieme R = Range ( "a65536"). Fine (xlUp) sarà ancora una volta impostato correttamente la gamma della nuova riga.