/ / Excel и VBA потребителски форми и диапазони

Excel VBA потребителски формат и диапазони

Можете да използвате a RefEdit контрол в Excel VBA за да получите обхват от потребител. Най- Userform ние ще създадем цветове минималната стойност на диапазон съхранявани в контрола RefEdit.

Потребителски форми и диапазони в Excel VBA

За да създадете този Userform, изпълнете следните стъпки.

1. Отворете редактора на Visual Basic. Ако Explorer на проекта не е видим, щракнете върху Преглед, Проект Explorer.

2. Щракнете върху Вмъкване, Потребител. Ако Toolbox не се покаже автоматично, кликнете върху View, Toolbox. Вашият екран трябва да бъде настроен, както е описано по-долу.

Настройка на потребителския екран в Excel VBA

3. Добавете етикета, контролния бутон RefEdit и командите. След като това бъде завършено, резултатът трябва да съответства на картината на потребителския формат, показан по-рано. Например, създайте контрола RefEdit, като кликнете върху RefEdit от Toolbox. След това можете да плъзнете контрола RefEdit в Userform.

Забележка: Ако вашата кутия с инструменти няма контрола RefEdit, задайте препратка към Control RefEdit. Кликнете върху Инструменти, Референции и отметнете Редактиране на Редактиране.

4. Можете да промените имената и надписите на контролите. Имената се използват в кода Excel VBA. Надписите са тези, които се показват на екрана ви. Добра практика е да промените имената на контролите, но това не е необходимо тук, защото имаме само няколко контрола в този пример. За да промените надписите на бутоните Userform, етикет и команда, кликнете върху View, Properties Window и кликнете върху всеки контролен панел.

5. За да покажете Userform, поставете командния бутон на работния лист и добавете следния ред:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Сега ще създадем Sub UserForm_Initialize. Когато използвате метода "Показване" за Userform, този под ще се изпълни автоматично.

6. Отворете редактора на Visual Basic.

7. В Project Explorer кликнете с десния бутон на мишката върху UserForm1 и след това върху View Code.

8. Изберете Userform от левия падащ списък. Изберете "Инициализиране" от десния падащ списък.

9. Добавете следните кодови редове:

Private Sub UserForm_Initialize()

Sheet1.Cells.Font.Color = vbBlack
UserForm1.RefEdit1.Text = Selection.Address

End Sub

Обяснение: Първата кодова линия променя цвета на шрифта на всички клетки от лист1 до черно. Втората кодова линия получава адреса на текущата селекция и я показва в контрола RefEdit.

Вече създадохме първата част от Userform. Въпреки че вече изглежда чист, нищо няма да се случи, когато щракнете върху командните бутони на Userform.

10. В Project Explorer кликнете два пъти върху UserForm1.

11. Кликнете два пъти върху бутона Go.

12. Добавете следните кодови редове:

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

Обяснение: първо, получаваме адреса от контрола RefEdit и го съхраняваме в String променливата addr. След това определяме rng в диапазона, определен в контрола RefEdit. След това използваме функцията за минимален работен лист, за да открием минималната стойност в диапазона. Накрая, оцветяваме минималната (ите) стойност (и) с помощта на цикъл.

13. Кликнете два пъти върху бутона Отказ.

14. Добавете следния ред на кода:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Обяснение: тази кодова линия затваря потребителския формат, когато кликнете върху бутона Отказ.

15. Изпробвайте Userform.

Резултат:

Потребителски резултат и обхват Резултат

Също така се чете: