Входни стойности са строго ограничени в посочения диапазон

Тази книга е предназначена за потребителите на Microsoft Excel и описва техниките и методите на работа, които, поради тяхната специфика, са по-слабо представени (или не е показан) в потребителския, справочници и други съответната документация. Изследването цитира примери в книгата ще позволи на читателя да открие неизвестни досега възможности на Excel. Предложеният материал е лесно смилаема, защото очертанията достъпен и разбираем език.

Книга: Excel. Каскади и ефекти

Входни стойности са строго ограничени в посочения диапазон

Раздели на тази страница:

Входни стойности са строго ограничени в посочения диапазон

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

Въвеждане на данни с помощта на диалоговия прозорец

Можете да конфигурирате програмата така, че входните данни е строго ограничена до посочения диапазон ще бъде направено само с помощта на диалоговия прозорец. За да направите това, използвайте макроса, кодът е показано на Обява 2.35.

Обявата 2.35. диалоговия прозорец Настройка на въвеждане на данни

Дим intMin Като цяло число, intMax Както Range Цяло число "

Дим strInput Като потребителска низ String "

Дим strMessage Както стринга

Дим intValue Като цяло число

intMin = 1 "Минимална стойност

Максимална стойност intMax = 50 '

strMessage = "Въведете стойност между" intMin "До" intMax

"Въведете стойност (цикъл е завършен, когато потребителят въведе _

стойност на предварително определен обхват или отменя входа)

Ако strInput = "" Тогава Излезте Под "вход Отмени

"Проверете ако потребителят е въвел низ съдържа редица

Ако IsNumeric (strInput) След това

"Проверете дали стойността отговаря на обхвата

Ако intValue> = intMin И intValue <= intMax Then

"Са изпълнени всички условия

"Формиране на съобщения с текст грешка

strMessage = «Въвели сте неправилна стойност." vbNewLine _

"Въведете номер от" intMin "До" intMax

"Въвеждане на данни в клетката

След написването на този код в макро полето за избор ще бъде на разположение на макроси DialoglnputData. За да го наречем по-добре да се създаде специален бутон. След натискане на този бутон, диалогов прозорец ще ви подкани да въведете стойност от 1 до 50 (диапазон от стойности може да се променя по своему - това е достатъчно, за да направи съответните промени в кода на макросите). Когато се опитате да въведете стойност, която излиза извън горния диапазон, се появява прозорец със съответния предупреждение и повтори офертата да влезе в правилната стойност. Въведената стойност ще бъде поставен в клетка A1 - се отбелязва в ред код ActiveSheet.Range ( «Ал»). Стойност = strlnput. Ако този ред вместо точка А1, например, В1: E5, стойността на въвеждане ще бъде поставен на всички споменати диапазон клетки.

Директен вход

Ако въведените данни с помощта на диалоговия прозорец по някаква причина не е необходимо, можете да ги въведете директно в диапазона. Програмата ще следи входните данни (така, че да не надвишава определен интервал).

Обявата 2.36. Ограничаването на обхвата на възможните стойности

Под Worksheet_Change (ByVal Target As Excel.Range)

Дим rgInputRange Както Range

Дим клетка Както Range

Дим strMessage Както стринга

Дим varResult Както Variant

"Диапазон, който се контролира от входа

Задайте rgInputRange = Range ( «A1: E10»)

принадлежат към даден диапазон

За Всяка клетка В Target

"Проверка на набор от аксесоари

Ако съюз (клетка, rgInputRange) .Address =

"Вход коректност контрол

Ако varResult = вярно, тогава

"Enter правилната стойност

"Получаване и съобщение за грешка

strMessage = "Cell" cell.Address (False, False)

vbCrLf vbCrLf varResult

MsgBox strMessage, vbCritical, «Неправилно"

Функция IsCellDataValid (клетка Както Range) Както Variant

"Връща TRUE, ако числото е вписано в клетка _

в диапазона от 1 до 12. В противен случай, издаден _

"Проверете дали броят на съдържанието на клетката

Ако не WorksheetFunction.IsNumber (cell.Value) След това

IsCellDataValid = «не-цифрова стойност"

"Проверете дали номерът на входа е цяло число

Ако Int (cell.Value) <> cell.Value Тогава

IsCellDataValid = «Въведете цяло число"

"Проверка на обхвата номер

Ако cell.Value <1 Or cell.Value> 12 Тогава

IsCellDataValid = «стойност трябва да бъде между 1 до 12»

"В клетка, въведена допустима стойност

След написването на този код в диапазона A1: E10 може да бъде дадена само цели стойности брой попадат в диапазона от 1 до 12. Ако се опитате да влезете в не-числови стойности (например текст), програмата няма да може тя да направи - на екрана ще се появи съобщение кутия без числена стойност. Въвеждане на дробно число също ще бъде невъзможно - съобщението Въведете цяло число. Ако се опитаме да въведете стойност, което е извън обхвата от 1 до 12, то също ще бъде невъзможно и вие ще получите съобщение Стойността трябва да бъде от 1 до 12.