Valorile de intrare sever restricționată în intervalul specificat

Această carte este destinat pentru utilizatorii de Microsoft Excel și descrie tehnicile și metodele de lucru, care, datorită specificității lor, sunt sub-reprezentate (fie nu sunt prezentate) în utilizator, de referință și alte documente relevante. Studiul citat exemple în cartea va permite cititorului să descopere capacitățile necunoscute anterior de Excel. Materialul propus este ușor de digerat, deoarece contururile limbaj accesibil și ușor de înțeles.

Book: Excel. Efecte & Stunts

Valorile de intrare sever restricționată în intervalul specificat

Secțiunile de pe această pagină:

Valorile de intrare sever restricționată în intervalul specificat

În timpul funcționării, programul este uneori necesar să se asigure că datele introduse de către utilizator nu depășește un anumit interval. În această secțiune ne vom uita la două trucuri care vă permit să rezolve această problemă: folosind caseta de dialog și prin introducerea directă a datelor în intervalul. Utilizarea acestor trucuri vă permite să controlați corectitudinea datelor introduse de utilizatori.

Introducerea de date folosind caseta de dialog

Puteți configura programul astfel încât datele de intrare este strict limitată la intervalul specificat se va face numai prin intermediul casetei de dialog. Pentru a face acest lucru, utilizați macro, codul afișat în Listing 2.35.

Listarea 2,35. Caseta de dialog Setare de introducere a datelor

Dim intMin Ca Integer, intMax Ca Gama Integer“

Dim strInput Ca șir introdus de utilizator String“

Dim strMessage ca șir

Dim intValue Ca Integer

intMin = 1 „Valoarea minimă

Valoarea maximă intMax = 50“

strMessage = „Introduceți o valoare între“ intMin „Pentru“ intMax

„Introduceți valoarea (ciclul este finalizat atunci când utilizatorul introduce _

valoarea intervalului predeterminat sau anulează intrarea)

Dacă strInput = „“ Atunci de ieșire „de intrare Sub Anulare

„Verificați dacă utilizatorul a introdus șirul conține un număr de

Dacă IsNumeric (strInput) Atunci

„Verificați dacă valoarea satisface gama

Dacă intValue> = intMin Și intValue <= intMax Then

„Sunt îndeplinite toate condițiile

„Formarea mesajelor cu eroare de text

strMessage = «Ați introdus o valoare incorectă.“ vbNewLine _

„Introduceți un număr de“ intMin „Pentru“ intMax

„Introducerea de date în celulă

După ce a scris acest cod în caseta de selecție macro va fi macro-uri disponibile DialoglnputData. Pentru a numi mai bine pentru a crea un buton special. După apăsarea acestui buton, o casetă de dialog vă solicită să introduceți o valoare de 1-50 (interval de valori pot fi schimbate pe cont propriu - este suficient pentru a face modificări corespunzătoare codului macro). Când încercați să introduceți o valoare care depășește intervalul de mai sus, apare o fereastră cu avertizare corespunzătoare și a repetat oferta pentru a introduce valoarea corectă. Valoarea introdusă va fi plasat în celula A1 - este indicat în linia de cod ActiveSheet.Range ( «Al»). Valoare = strlnput. Dacă acest rând în locul punctului A1, de exemplu, B1: E5, valoarea de intrare va fi plasat la toate numitele celule range.

introducere directă

În cazul în care introducerea de date utilizând o casetă de dialog pentru orice motiv nu este adecvată, le puteți intra direct în gama. Programul va monitoriza datele de intrare (astfel încât acestea să nu depășească intervalul specificat).

Listarea 2.36. Limitarea intervalului de valori posibile

Sub Worksheet_Change (ByVal Target As Excel.Range)

Dim rgInputRange Ca Gama

celulă Dim Ca Interval

Dim strMessage ca șir

Dim varResult Ca Variant

„Range, care este controlat de intrare

Set rgInputRange = Interval ( «A1: E10»)

aparțin unui anumit interval

Pentru fiecare celulă țintă

„Verificarea gama de accesorii

În cazul în care Uniunea (celula, rgInputRange) .Address =

„Corectitudine de intrare de control

Dacă varResult = true Atunci

„Introduceți valoarea corectă

„Formarea și un mesaj de eroare

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

vbCrLf vbCrLf varResult

MsgBox strMessage, vbCritical, «incorect“

Funcția IsCellDataValid (celulă ca Range) Ca Varianta

„Returnează Adevărat, în cazul în care întreg este introdus în celulă _

în intervalul de la 1 la 12. În caz contrar, emis _

„Verificați dacă numărul de conținutul celulei

În cazul în care nu WorksheetFunction.IsNumber (cell.Value) Atunci

Valoarea IsCellDataValid = «non-numerice“

„Verificați dacă numărul de intrare este un număr întreg

Dacă Int (cell.Value) <> Apoi cell.Value

IsCellDataValid = «Introduceți un număr întreg“

„Verificarea gama de numere

Dacă cell.Value <1 Or cell.Value> 12 Atunci

IsCellDataValid = «valoare trebuie să fie între 1 și 12»

„În celula introdusă valoarea admisibilă

După ce a scris acest cod în zona A1: E10 ar putea fi dat numai valori numerice întregi se încadrează în intervalul de la 1 la 12. Dacă încercați să introduceți un valori non-numerice (de exemplu, text), programul nu va permite să facă - ecranul va afișa o valoare non-numerică caseta de mesaj. Introducerea numărul fracționar va fi, de asemenea, imposibil - mesajul Introduceți un număr întreg. Dacă încercăm să introduceți o valoare care depășește intervalul de la 1 la 12, acesta va fi, de asemenea imposibil și veți primi un mesaj Valoarea trebuie să fie 1 - 12.