En alguns casos, és possible que vulgueu que l'usuari seleccioni un interval VBA d'Excel mentre es mostra un quadre de diàleg. Un exemple d'aquest tipus de selecció d'interval VBA d'Excel es troba al quadre de diàleg Crea una taula, que es mostra quan trieu Inici → Insereix → Taules → Taula. El quadre de diàleg Crea una taula té un control selector d'interval que conté les suposicions d'Excel sobre l'interval que s'ha de convertir, però podeu utilitzar aquest control per canviar l'interval seleccionant cel·les al full de treball.
Per permetre una selecció d'interval VBA d'Excel al quadre de diàleg, afegiu un control RefEdit. L'exemple següent mostra un quadre de diàleg amb l'adreça d'interval de la regió actual que es mostra en un control RefEdit. La regió actual és el bloc de cel·les no buides que conté la cel·la activa. L'usuari pot acceptar o canviar aquest interval. Quan l'usuari fa clic a D'acord, el procediment fa que l'interval sigui en negreta.
Aquest quadre de diàleg permet a l'usuari seleccionar un interval.
Aquest exemple d'Excel VBA suposa el següent:
- Teniu un UserForm anomenat UserForm1.
- El UserForm conté un control CommandButton anomenat OKButton.
- El UserForm conté un control CommandButton anomenat CancelButton.
- El UserForm conté un control RefEdit anomenat RefEdit1.
El codi s'emmagatzema en un mòdul VBA i es mostra aquí. Aquest codi fa dues coses: inicialitza el quadre de diàleg assignant l'adreça de la regió actual al control RefEdit i mostra el formulari d'usuari.
Sub BoldCells ()
' Surt si el full de treball no està actiu
Si TypeName(ActiveSheet) <> "Worksheet" (Full de treball), sortiu de Sub
' Seleccioneu la regió actual
ActiveCell.CurrentRegion.Select
' Inicialitzar el control RefEdit
UserForm1.RefEdit1.Text = Selecció.Adreça
' Mostra el diàleg
UserForm1.Mostra
End Sub
El procediment següent s'executa quan es fa clic al botó D'acord. Aquest procediment fa una simple comprovació d'errors per assegurar-se que l'interval especificat al control RefEdit és vàlid.
Sub privat OKButton_Click()
En cas d'error GoTo BadRange
Interval(RefEdit1.Text).Font.Bold = True
Descarregueu UserForm1
Sortir de Sub
BadRange:
MsgBox "L'interval especificat no és vàlid."
End Sub
Si es produeix un error a Excel VBA (probablement una especificació d'interval no vàlida al control RefEdit), el codi salta a l'etiqueta BadRange i es mostra un quadre de missatge. El quadre de diàleg roman obert perquè l'usuari pugui seleccionar un altre rang.
Si obtenir un interval seleccionat per l'usuari és l'única funció que realitza el vostre formulari d'usuari, podeu simplificar les coses utilitzant el mètode Application InputBox.