Kai kuriais atvejais galite norėti, kad vartotojas pasirinktų Excel VBA diapazoną, kai rodomas dialogo langas. Šio tipo Excel VBA diapazono pasirinkimo pavyzdys pateikiamas dialogo lange Kurti lentelę, kuris rodomas pasirinkus Pagrindinis → Įterpti → Lentelės → Lentelė. Dialogo lange Kurti lentelę yra diapazono parinkiklio valdiklis, kuriame yra „Excel“ spėjimas apie konvertuojamą diapazoną, tačiau galite naudoti šį valdiklį, norėdami pakeisti diapazoną darbalapyje pažymėdami langelius.
Norėdami leisti pasirinkti Excel VBA diapazoną dialogo lange, pridėkite valdiklį RefEdit. Šiame pavyzdyje rodomas dialogo langas su dabartinio regiono diapazono adresu, rodomu valdiklyje RefEdit. Dabartinė sritis yra netuščių langelių blokas, kuriame yra aktyvi ląstelė. Vartotojas gali priimti arba pakeisti šį diapazoną. Kai vartotojas spustelėja Gerai, procedūra paryškina diapazoną.
Šis dialogo langas leidžia vartotojui pasirinkti diapazoną.
Šiame Excel VBA pavyzdyje daroma prielaida, kad:
- Turite vartotojo formą pavadinimu UserForm1.
- UserForm yra CommandButton valdiklis pavadinimu OKButton.
- UserForm yra CommandButton valdiklis, pavadintas CancelButton.
- UserForm yra RefEdit valdiklis pavadinimu RefEdit1.
Kodas saugomas VBA modulyje ir rodomas čia. Šis kodas atlieka du dalykus: inicijuoja dialogo langą, priskirdamas dabartinio regiono adresą RefEdit valdikliui ir parodo UserForm.
SubboldCells ()
Išeikite, jei darbalapis neaktyvus
Jei TypeName(ActiveSheet) <> "Worksheet" Tada išeikite iš sub
' Pasirinkite dabartinį regioną
ActiveCell.CurrentRegion.Select
Inicijuoti RefEdit valdymą
UserForm1.RefEdit1.Text = Selection.Address
' Rodyti dialogą
UserForm1.Show
Pabaigos sub
Paspaudus mygtuką Gerai, atliekama tokia procedūra. Ši procedūra atlieka keletą paprastų klaidų patikrinimų, kad įsitikintų, jog RefEdit valdiklyje nurodytas diapazonas yra tinkamas.
Privatus sub OKButton_Click()
Įvykus klaidai GoTo BadRange
Diapazonas(RefEdit1.Text).Šriftas.Bold = True
Išsiųskite UserForm1
Išeiti iš sub
BadRange:
MsgBox "Nurodytas diapazonas negalioja."
Pabaigos sub
Jei Excel VBA įvyksta klaida (greičiausiai RefEdit valdiklyje neteisinga diapazono specifikacija), kodas peršoka į BadRange etiketę ir rodomas pranešimo laukelis. Dialogo langas lieka atidarytas, todėl vartotojas gali pasirinkti kitą diapazoną.
Jei vartotojo pasirinkto diapazono gavimas yra vienintelė funkcija, kurią atlieka jūsų UserForm, galite supaprastinti dalykus naudodami Application InputBox metodą.