VBA Atrodiet vērtību kolonnā

Šis raksts parādīs, kā izmantot VBA, lai atrastu vērtību kolonnā.

Mēs varam izmantot Range.Find, lai cilpotu VBA vērtību kolonnu, lai atrastu visas diapazona šūnas, kas atbilst norādītajiem kritērijiem.

Looping caur kolonnu ar Range.Find un Range.FindNext

Tālāk redzamajā piemērā mēs aplūkojam slejā esošos datus un meklējam vārdu “nokavēts”. Kad tas atrod vārdu, tas atzīmē šūnu, mainot šūnas teksta krāsu uz sarkanu. Pēc tam mēs izmantosim metodi Range.FindNext, lai pārietu uz nākamo šūnu un turpinātu meklēt vārdu, turpinot ciklu līdz norādītā šūnu diapazona beigām.

1234567891011121314151617 Apakš FindLoop ()Dim strFirstAddress kā virkneDim rngFindValue kā diapazonsDim rngSearch As RangeDim rngFind As RangeIestatiet rngFind = ActiveSheet.Range ("F1: F17")Iestatīt rngSearch = rngFind.Cells (rngFind.Cells.Count)Iestatīt rngFindValue = rngFind.Find ("nokavēts", rngSearch, xlValues)Ja nē, tad rngFindValue nav nekasstrFirstAddress = rngFindValue.AddressrngFindValue.Font.Color = vbRedVaiIestatīt rngFindValue = rngFind.FindNext (rngFindValue)rngFindValue.Font.Color = vbRedCilpa līdz rngFindValue.Address = strFirstAddressBeigas JaBeigu apakš

Kad kods darbojas, tas saglabā pirmās šūnas adresi, kurā dati ir atrodami mainīgajā strFirstAddress un maina teksta krāsu uz sarkanu. Pēc tam tiek izveidota cilpa, lai atrastu nākamo šūnu, kurā ir nepieciešamie dati. Kad vērtība ir atrasta, teksta krāsa tiek mainīta uz sarkanu un pēc tam šūnas adrese, kurā tiek atrasta vērtība, tiek salīdzināta ar virkni strFirstAddress. Ja tie nav vienādi, cikls turpinās, atrodot katru vārda “nokavēts” gadījumu. Kad cilpa sasniegs šūnu diapazona beigas (ti, F17), tā sāksies diapazona sākumā (F1) un turpinās cilpu. Kad tas otro reizi sasniedz šūnas adresi F3, jo tas ir tāds pats kā saglabātais mainīgais strFirstAddress, cilpa apstāsies.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave