Cuprins
În acest articol, vă voi arăta cum puteți folosi un Dacă declarația If în VBA în Excel pe baza valorii unei celule.
Excel VBA: Instrucțiunea If bazată pe valoarea celulei (Vizualizare rapidă)
Sub If_Statement_Based_On_a_Single_Cell() If Range("C3").Value>= 40 Then Range("D3").Value = "Passed" Else Range("D3").Value = "Failed" End If End Sub
Descărcați caietul de practică
Descărcați acest caiet de exerciții pentru a vă exercita în timp ce citiți acest articol.
Declarația If bazată pe valoarea celulei.xlsmDeclarația If bazată pe valoarea celulei în Excel VBA
Aici avem o foaie de calcul care conține nume și mărci a unor elevi ai unei școli la un examen.
Obiectivul nostru este de a învăța cum să folosim Dacă declarația If în Excel VBA pe baza valorii unei celule din acest set de date.
1. Declarația If bazată pe valoarea unei singure celule în Excel VBA
Mai întâi de toate, vom învăța să folosim o instrucțiune If bazată pe valoarea unei singure celule.
De exemplu, să încercăm să vedem dacă Natalia Austin a trecut sau nu examenul, adică dacă nota din celula C3 este mai mare decât 40 sau nu.
Coloana D conține rezultatul elevilor. Altfel spus, dacă celula C3 conține o notă mai mare de 40, celula D3 va conține "A trecut" . altfel, va conține "Eșuată" .
Vom folosi un VBA Gama pentru a crea acest obiect Dacă declarația If pe baza valorii celulei.
The VBA codul pentru aceasta va fi:
⧭ Cod VBA:
Sub If_Statement_Based_On_a_Single_Cell() If Range("C3").Value>= 40 Then Range("D3").Value = "Passed" Else Range("D3").Value = "Failed" End If End Sub
⧭ Ieșire:
Rulați codul din Rulați Sub / UserForm din aplicația VBA bara de instrumente.
Va face ca celula D3 conțin "Eșuată" , ca marcaj în celula C3 este mai mică decât 40 ( 32 ).
2. Instrucțiunea If bazată pe valorile unui interval de celule în Excel VBA
De asemenea, puteți utiliza și funcția Dacă declarația If pe baza valorilor unui interval de celule din VBA Puteți folosi un for-loop în acest scop.
De exemplu, aici putem afla rezultatul tuturor elevilor cu un singur cod. Vom itera prin intermediul unui fișier for-loop care va verifica toate celulele din intervalul C3:C12 și returnează un rezultat corespunzător, "A trecut" sau "Eșuată" .
The VBA codul pentru aceasta va fi:
⧭ Cod VBA:
Sub If_Statement_Based_On_a_Range_of_Cells() For i = 1 To Range("C3:C12").Rows.Count If Range("C3:C12").Cells(i, 1).Value>= 40 Then Range("D3:D12").Cells(i, 1).Value = "Passed" Else Range("D3:D12").Cells(i, 1).Value = "Failed" End If Next i End Sub
⧭ Ieșire:
Rulați codul din Rulați Sub / UserForm din aplicația VBA Acesta va returna "A trecut" pentru mărcile care sunt mai mari decât 40 și "Eșuat" pentru cele care sunt mai puțin de n 40 .
Lucruri de reținut
Aici am arătat un Dacă declarația If cu o singură condiție. Dar, dacă doriți, puteți utiliza mai multe condiții în cadrul unei Dacă declarația If .
Dacă utilizați OR introduceți mai multe condiții, uniți-le cu un OR .
Și dacă folosiți ȘI introduceți mai multe condiții, uniți-le cu un ȘI .
De exemplu, pentru a verifica dacă marcajul din celula B3 este mai mare decât 40 și mai puțin de 50 sau nu, utilizați:
Dacă (Range("C3").Value> 40 Sau Range("C3").Value <50) Atunci