VBA form e intervalli di Excel
È possibile utilizzare un controllo ModRif in Excel VBA per ottenere una gamma da un utente. Il form stiamo andando a creare colori il valore minimo del range memorizzato nel controllo ModRif.
Per creare questo form, eseguire i seguenti passaggi.
-
Aprire il Visual Basic Editor. Se il progetto Explorer non è visibile, fare clic su Visualizza, progetti.
-
Fare clic su Inserisci, Userform. Se la Casella degli strumenti non viene visualizzata automaticamente, fare clic su Visualizza, Strumenti. Lo schermo dovrebbe essere impostato come di seguito.
-
Aggiungere i pulsanti di comando dell’etichetta, il controllo ModRif e. Una volta che questo è stato completato, il risultato deve essere coerente con l’immagine del Userform mostrato in precedenza. Ad esempio, creare un controllo ModRif cliccando sul ModRif dalla Casella degli strumenti. Successivamente, è possibile trascinare un controllo ModRif sopra il Form utente.
Nota: Se la vostra cassetta degli attrezzi non dispone di un controllo ModRif, impostare un riferimento al controllo ModRif. Fare clic su Strumenti, Elenchi e controllare Rif Edit Control.
-
È possibile modificare i nomi e le didascalie dei controlli. I nomi sono utilizzati nel codice VBA di Excel. Le didascalie sono quelli che appaiono sullo schermo. È buona norma cambiare i nomi dei controlli, ma non è necessario qui perché abbiamo solo un paio di controlli in questo esempio. Per modificare la didascalia dei tasti form, di etichette e di comando, fare clic su Visualizza, Finestra Proprietà e fare clic su ogni controllo.
-
Per mostrare il form, inserire un pulsante di comando nel foglio di lavoro e aggiungere la riga di codice seguente:
Private Sub CommandButton1_Click() UserForm1.Show End Sub
Ora stiamo andando a creare l’UserForm_Initialize Sub. Quando si utilizza il metodo Show per il form, verrà automaticamente eseguito questo sub.
-
Aprire il Visual Basic Editor.
-
In Esplora progetti, fare clic destro su UserForm1 e quindi fare clic su Visualizza codice.
-
Scegliere Userform dall’elenco a discesa sinistra. Scegli inizializzazione dall’elenco a discesa a destra.
-
Aggiungere le seguenti righe di codice:
Private Sub UserForm_Initialize() Sheet1.Cells.Font.Color = vbBlack UserForm1.RefEdit1.Text = Selection.Address End Sub
Spiegazione: la prima riga di codice cambia il colore del carattere di tutte le celle di Sheet1 al nero. La seconda linea di codice ottiene l’indirizzo della selezione corrente e la visualizza nel controllo ModRif.
Abbiamo creato la prima parte del form utente. Anche se sembra già ordinato, nulla accadrà ancora quando si clicca sui pulsanti di comando al form utente.
-
In Esplora progetti, fare doppio clic su UserForm1.
-
Fare doppio clic sul pulsante Vai.
-
Aggiungere le seguenti righe di codice:
Private Sub CommandButton1_Click() Dim addr As String, rng, cell As Range, minimum As Double addr = RefEdit1.Value Set rng = Range(addr) minimum = WorksheetFunction.Min(rng) For Each cell In rng If cell.Value = minimum Then cell.Font.Color = vbRed Next cell End Sub
Spiegazione: in primo luogo, si ottiene l’indirizzo dal controllo RefEdit e memorizzarlo nella variabile stringa addr. Avanti, abbiamo impostato RNG per l’intervallo specificato nel controllo ModRif. Successivamente, abbiamo utilizzare la funzione del foglio di lavoro Min per trovare il valore minimo della gamma. Infine, coloriamo il valore minimo (s) utilizzando un ciclo.
-
Fare doppio clic sul pulsante Annulla.
-
Aggiungere il seguente riga di codice:
Private Sub CommandButton2_Click() Unload Me End Sub
Spiegazione: questa riga di codice chiude il form quando si fa clic sul pulsante Annulla.
-
Prova il form.
Risultato: