Visual Basic è un linguaggio eccellente per automatizzare le attività ripetitive in Excel. Immagina di portare la tua automazione a un livello superiore creando moduli utente altamente funzionali che sembrano ordinati anche per gli utenti finali.
I moduli utente in VBA ti presentano una tela bianca; puoi progettare e organizzare i moduli in base alle tue esigenze in qualsiasi momento.
In questa guida imparerai a creare un modulo di immissione dati basato sugli studenti che acquisisca informazioni rilevanti in fogli Excel collegati.
Creazione di un modulo utente con Excel VBA
Aprire una nuova cartella di lavoro di Excel ed eseguire alcuni passaggi preliminari prima di iniziare a creare il modulo di immissione dati.
Salva la tua cartella di lavoro con il nome desiderato; non dimenticare di cambiare il tipo di file in un Cartella di lavoro con abilitazione macro di Excel.
Imparentato:Siti Web e blog per apprendere suggerimenti e trucchi su Excel
Aggiungi due fogli a questa cartella di lavoro, con i seguenti nomi:
- Foglio1: Casa
- Foglio2:Banca dati studenti
Sentiti libero di cambiare questi nomi secondo le tue esigenze.
Nel Casa foglio, aggiungere un pulsante per controllare la macro del modulo utente. Vai al Sviluppatore scheda e fare clic su Pulsante opzione dal Inserire menu `A tendina. Posiziona il pulsante in un punto qualsiasi del foglio.
Dopo aver posizionato il pulsante, rinominalo. Fare clic destro su di esso e fare clic su Nuovo per assegnare una nuova macro per mostrare il form.
Immettere il seguente codice nella finestra dell'editor:
Pulsante secondario1_Click()
Modulo utente. Spettacolo
Fine Sub
Una volta che il Casa e Database degli studenti i fogli sono pronti, è ora di progettare il modulo utente. Passa a Sviluppatore scheda e fare clic su Visual Basic per aprire l'editor. In alternativa, puoi premere ALT+F11 per aprire la finestra dell'editor.
Clicca sul Inserire scheda e seleziona Modulo utente.
Un modulo utente vuoto è pronto per l'uso; una cassetta degli attrezzi di accompagnamento si apre insieme al modulo, che contiene tutti gli strumenti essenziali per progettare il layout.
Dalla casella degli strumenti, selezionare il Telaio opzione. Trascinalo nel modulo utente e ridimensionalo.
Nel (nome) opzione, è possibile modificare il nome della cornice. Per mostrare il nome sul front-end, puoi cambiare il nome nel file Didascalia colonna.
Quindi, seleziona il Etichetta opzione dalla casella degli strumenti e inserire due etichette all'interno di questo riquadro. Rinomina il primo come Numero di applicazione e il secondo come ID studente.
Si applica la stessa logica di ridenominazione; cambiare i nomi tramite il Didascalia opzione all'interno del Proprietà finestra. Assicurati di selezionare la rispettiva etichetta prima di cambiarne il nome.
Quindi, inserisci due caselle di testo accanto alle caselle dell'etichetta. Questi verranno utilizzati per acquisire gli input dell'utente. Modificare i nomi di due caselle di testo tramite il (Nome) colonna all'interno del Proprietà finestra. I nomi sono i seguenti:
- Casella di testo1: txtApplicazione n
- Casella di testo2: txtID studente
Progettazione della cornice dei dettagli dello studente
Inserisci una cornice verticale e aggiungi 10 etichette e 10 caselle di testo. Rinomina ciascuno di essi nel modo seguente:
- Etichetta3: Nome
- Etichetta4: Età
- Etichetta5: Indirizzo
- Etichetta6: Telefono
- Etichetta7: Città
- Etichetta8: Paese
- Etichetta9: Data di nascita
- Etichetta 10: Cap
- Etichetta11: Nazionalità
- Etichetta12: Genere
Inserisci le caselle di testo corrispondenti accanto a queste etichette; inserisci due (o più) pulsante opzione caselle dalla casella degli strumenti del modulo utente accanto a Genere etichetta. Rinominali Maschio e Femmina (insieme a Personalizzato), rispettivamente.
Progettazione del riquadro dei dettagli del corso
Aggiungi un'altra cornice verticale e inserisci sei etichette e sei caselle di testo corrispondenti a ciascuna etichetta. Rinominare le etichette come segue:
- Etichetta13: Nome del corso
- Etichetta14: ID corso
- Etichetta15: Data di inizio iscrizione
- Etichetta16: Data di fine iscrizione
- Etichetta17: Durata del corso
- Etichetta18: Dipartimento
Imparentato: 4 errori da evitare durante la programmazione di macro di Excel con VBA
Progettazione del riquadro dei dettagli di pagamento
Inserisci una nuova cornice; aggiungi una nuova etichetta e rinominala "Vuoi aggiornare i dettagli del pagamento?" Inseriscine due pulsanti di opzione; rinominarli sì e No.
Allo stesso modo, aggiungi una nuova cornice contenente due etichette aggiuntive e due caselle combinate. Rinominare le etichette come segue:
- Etichetta19: Pagamento ricevuto
- Etichetta20: Modalità di pagamento
Progettazione del riquadro di spostamento
Nella cornice finale, aggiungi tre pulsanti dalla casella degli strumenti, che conterranno il codice per l'esecuzione dei moduli.
Rinominare i pulsanti nel modo seguente:
- Pulsante1: Salva dettagli
- Pulsante2: Forma chiara
- Pulsante 3: Uscita
Scrittura del codice del modulo automatizzato: pulsante Salva dettagli
Fare doppio clic su Salva dettagli pulsante. Nel modulo successivo, inserisci il seguente codice:
Comando secondario privato CommandButton2_Click()
‘dichiarare le variabili utilizzate nei codici
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Long'Aggiungi convalide per verificare se i valori dei caratteri vengono inseriti nei campi numerici.
Se VBA.IsNumeric (txtApplicationNo. Value) = False allora
MsgBox "Sono accettati solo valori numerici nel numero dell'applicazione", vbCritical
Esci Sub
Finisci seSe VBA.IsNumeric (txtStudentID.Value) = False allora
MsgBox "Sono accettati solo valori numerici nell'ID studente", vbCritical
Esci Sub
Finisci seSe VBA.IsNumeric (txtAge. Valore) = Falso Allora
MsgBox "In Age vengono accettati solo valori numerici", vbCritical
Esci Sub
Finisci seSe VBA.IsNumeric (txtPhone. Valore) = Falso Allora
MsgBox "In numero di telefono sono accettati solo valori numerici", vbCritical
Esci Sub
Finisci seSe VBA.IsNumeric (Me.txtCourseID.Value) = False allora
MsgBox "In Course ID vengono accettati solo valori numerici", vbCritical
Esci Sub
Finisci se'collega i campi della casella di testo con i fogli sottostanti per creare un database scorrevole
Imposta sht = Questa cartella di lavoro. Fogli("Database studenti")'calcola l'ultima riga popolata in entrambi i fogli
ultima riga = sht. Intervallo ("a" & Righe. Conteggio).Fine (xlSu).Riga + 1
'incolla i valori di ciascuna casella di testo nelle rispettive celle del foglio
Con merda
.Range("a" & lastrow).Value = txtApplicationNo. Valore
.Range("b" & ultima riga).Valore = txtIDStudente.Valore
.Range("c" & ultima riga).Valore = txtNome. Valore
.Range("d" & ultima riga).Valore = txtEtà. Valore
.Range("e" & ultima riga).Valore = txtDOB.Valore
.Range("g" & lastrow).Value = txtAddress. Valore
.Range("h" & ultima riga).Valore = txtTelefono. Valore
.Range("i" & lastrow).Value = txtCity. Valore
.Range("j" & ultima riga).Valore = txtPaese. Valore
.Range("k" & lastrow).Valore = txtZip. Valore
.Range("l" & lastrow).Valore = txtNazionalità. Valore
.Range("m" & ultima riga).Valore = txtCorso. Valore
.Range("n" & ultima riga).Valore = txtIDCorso.Valore
.Range("o" & lastrow).Value = txtenrollmentstart. Valore
.Range("p" & lastrow).Value = txtenrollmentend. Valore
.Range("q" & lastrow).Value = txtcourseduration. Valore
.Range("r" & lastrow).Valore = txtDept. ValoreTermina con
merda Attivare'determinare il sesso secondo l'input dell'utente
Se optMale. Valore = Vero Quindi sht. Intervallo("g" & ultima riga).Valore = "Maschio"
Se optFemale. Valore = Vero Quindi sht. Intervallo("g" & ultima riga).Valore = "Femmina"
'Visualizza una finestra di messaggio, nel caso in cui l'utente selezioni il pulsante di opzione SìSe optSì. Valore = Vero Allora
MsgBox "Seleziona i dettagli di pagamento di seguito"
Altro:
Esci SubFinisci se
Fine Sub
Se non sei sicuro di cosa significhino parti o qualsiasi parte del codice, non preoccuparti. Lo spiegheremo a fondo nella prossima sezione.
Spiegazione del codice del modulo automatizzato
Le caselle di testo conterranno un mix di testo e valori numerici, quindi è essenziale limitare l'input dell'utente. Il Numero di applicazione, ID studente, Età, Telefono, ID corso, e Durata del corso dovrebbe contenere solo numeri, mentre il resto conterrà testo.
Utilizzando un SE istruzione, il codice attiva popup di errore se l'utente immette un carattere o un valore di testo in uno qualsiasi dei campi numerici.
Poiché le convalide degli errori sono in atto, è necessario collegare le caselle di testo alle celle del foglio.
Il ultima riga le variabili calcoleranno l'ultima riga popolata e memorizzeranno i valori in esse per un uso dinamico.
Infine, i valori vengono incollati dalle caselle di testo nel foglio Excel collegato.
Cancella i codici dei moduli e dei pulsanti di uscita
Nel chiaro pulsante, è necessario scrivere il codice per cancellare i valori esistenti dal modulo utente. Questo può essere fatto nel modo seguente:
con Me
.txtApplicazione n. Valore = ""
.txtIDStudente.Valore = ""
..txtNome. Valore = ""
.txtEtà. Valore = ""
.txtIndirizzo. Valore = ""
.txt Telefono. Valore = ""
.txtCittà. Valore = ""
.txt Paese. Valore = ""
.txtDOB.Value = ""
.txtZip. Valore = ""
.txtNazionalità. Valore = ""
.txtCorso. Valore = ""
.txtCourseID.Value = ""
.txtinizio registrazione. Valore = ""
.txtregistrazionend. Valore = ""
.txtdurata del corso. Valore = ""
.txtDipartimento Valore = ""
.cmbModalitàPagamento. Valore = ""
.cmbPagamento. Valore = ""
.optFemmina. Valore = Falso
.optMaschio. Valore = Falso
.optSì. Valore = Falso
.optNo. Valore = Falso
Termina con
Nel Uscita, inserire il seguente codice per chiudere il form utente.
CommandButton secondario privato5_Click()
Scaricami
Fine Sub
Come ultimo passaggio, devi inserire alcune parti finali di codice per creare i valori a discesa per le caselle combinate (all'interno dei frame di pagamento).
Private Sub UserForm_Activate()
Con pagamento cmb
.Chiaro
.Aggiungi articolo ""
.Aggiungi elemento "Sì"
.Aggiungi elemento "No"
Termina con
Con modalità di pagamento cmb
.Chiaro
.Aggiungi articolo ""
.Aggiungi voce "Contanti"
.Aggiungi voce "Carta"
.Aggiungi elemento "Verifica"
Termina con
Fine Sub
L'automazione VBA semplifica il lavoro
VBA è un linguaggio sfaccettato che serve a molti scopi. I moduli utente sono solo un aspetto all'interno di VBA: ci sono molti altri usi come il consolidamento di cartelle di lavoro e fogli di lavoro, l'unione di più fogli Excel e altri utili usi di automazione.
Indipendentemente dall'obiettivo di automazione, VBA è all'altezza del compito. Se continui ad imparare e ad esercitarti, non c'è nessun aspetto del tuo flusso di lavoro che non puoi migliorare.
L'unione di dati da più di un foglio Excel nella stessa cartella di lavoro è una vera seccatura... finché non usi le macro VBA.
Leggi Avanti
- Programmazione
- Produttività
- Programmazione Visual Basic
- Microsoft Excel
Gaurav Siyal ha due anni di esperienza di scrittura, scrivendo per una serie di società di marketing digitale e documenti sul ciclo di vita del software.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Clicca qui per iscriverti