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.