Dzēst vai ievietot rindas, pamatojoties uz šūnas vērtību

Šī apmācība parādīs, kā dzēst vai ievietot rindas, pamatojoties uz šūnu vērtībām.

Dzēst rindu, pamatojoties uz šūnas vērtību

Tas pārvietosies pa diapazonu un izdzēsīs rindas, ja A slejā ir rakstīts “dzēst”.

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Deklarēt mainīgosDim LastRow cik ilgi, FirstRow cik ilgiAptumšot rindu tik ilgiAr ActiveSheet“Definējiet pirmo un pēdējo rinduPirmā rinda = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row“Apkārt rindas (no apakšas uz augšu)Rindai = pēdējā rinda līdz pirmajai rindai -1. darbībaJa .Range ("A" & Rinda) .Value = "dzēst" Tad.Range ("A" un rinda) .Visa rinda.DeleteBeigas JaNākamā rindaBeigt arBeigu apakš

Mums ir jāsāk cilpa ar apakšējo rindu, jo, izdzēšot rindu, dati tiks pārvietoti, rindas izlaižot, ja cilpa tiek veikta no augšas uz leju.

Ņemiet vērā arī to, ka tā vietā, lai manuāli ievadītu pēdējo rindu, mēs aprēķinām pēdējo izmantoto rindu.

Dzēst rindu - pamatojoties uz filtru

Iepriekšējā piemērā mēs atkārtojām rindas, dzēšot katru rindu, kas atbilst kritērijiem. Alternatīvi, mēs varam izmantot Excel automātisko filtru, lai filtrētu rindas, pamatojoties uz dažiem kritērijiem, un pēc tam izdzēstu redzamās rindas:

12345678910111213141516171819202122232425 ApakšfiltrsAndDeleteRows ()'Deklarēt ws mainīgoDim ws kā darblapaIestatiet ws = ActiveSheet'Atiestatīt esošos filtrusPar kļūdu Atsākt nākamows.ShowAllDataKļūda GoTo 0'Lietot filtruws.Range ("a1: d100"). Automātiskā filtra lauks: = 1, Kritēriji1: = "dzēst""Dzēst rindasApplication.DisplayAlerts = Nepareiziws.Range ("a1: d100"). SpecialCells (xlCellTypeVisible) .DeleteApplication.DisplayAlerts = Patiess'Notīrīt filtruPar kļūdu Atsākt nākamows.ShowAllDataKļūda GoTo 0Beigu apakš

Dzēst rindu, pamatojoties uz šūnu kritērijiem

Tiks pārvietots diapazons, dzēšot rindas, ja A slejas šūna atbilst noteiktiem kritērijiem (<0):

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Deklarēt mainīgosDim LastRow cik ilgi, FirstRow cik ilgiAptumšot rindu tik ilgiAr ActiveSheet“Definējiet pirmo un pēdējo rinduPirmā rinda = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row“Apkārt rindas (no apakšas uz augšu)Rindai = pēdējā rinda līdz pirmajai rindai -1. darbībaJa .Range ("A" & Rinda) .Vērtība <0 Tad.Range ("A" un rinda) .Visa rinda.DeleteBeigas JaNākamā rindaBeigt arBeigu apakš

VBA programmēšana | Kodu ģenerators strādā jūsu labā!

Dzēst rindu, ja šūna ir tukša

Tas pārvietosies pa diapazonu, dzēšot rindu, ja A slejas šūna ir tukša:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Deklarēt mainīgosDim LastRow cik ilgi, FirstRow cik ilgiAptumšot rindu tik ilgiAr ActiveSheet“Definējiet pirmo un pēdējo rinduPirmā rinda = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row“Apkārt rindas (no apakšas uz augšu)Rindai = pēdējā rinda līdz pirmajai rindai -1. darbībaJa .Range ("A" & Rinda) .Value = "" Tad.Range ("A" un rinda) .Visa rinda.DeleteBeigas JaNākamā rindaBeigt arBeigu apakš

Dzēst tukšo rindu

Alternatīvi, ja vēlaties dzēst rindu, ja visa rinda ir tukša (noklikšķiniet uz saites, lai uzzinātu nedaudz atšķirīgu metodi), varat izmantot šo kodu:

1234567891011121314151617181920 Sub DeleteBlankRows ()'Deklarēt mainīgosDim LastRow cik ilgi, FirstRow cik ilgiAptumšot rindu tik ilgiAr ActiveSheet“Definējiet pirmo un pēdējo rinduPirmā rinda = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row“Apkārt rindas (no apakšas uz augšu)Rindai = pēdējā rinda līdz pirmajai rindai -1. darbībaJa WorksheetFunction.CountA (.Rows (Row)) = 0 Tad.Rindas (Rinda) .Visa rinda.DeleteBeigas JaNākamā rindaBeigt arBeigu apakš

Dzēst rindu, ja šūna satur vērtību

Tādējādi tiks pārvietots diapazons, dzēšot rindu, ja A slejas šūna nav tukša:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Deklarēt mainīgosDim LastRow cik ilgi, FirstRow cik ilgiAptumšot rindu tik ilgiAr ActiveSheet“Definējiet pirmo un pēdējo rinduPirmā rinda = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row“Apkārt rindas (no apakšas uz augšu)Rindai = pēdējā rinda līdz pirmajai rindai -1. darbībaJa .Range ("A" & Rinda) .Vērtība "" Tad.Range ("A" un rinda) .Visa rinda.DeleteBeigas JaNākamā rindaBeigt arBeigu apakš

Vai esat noguris no VBA koda piemēru meklēšanas? Izmēģiniet AutoMacro!

Ievietot rindu, pamatojoties uz šūnas vērtību

Tas pārvietosies pa diapazonu, ievietojot rindas, ja konkrēta šīs rindas šūna saka “ievietot”:

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue ()'Deklarēt mainīgosDim LastRow cik ilgi, FirstRow cik ilgiAptumšot rindu tik ilgiAr ActiveSheet“Definējiet pirmo un pēdējo rinduPirmā rinda = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row“Apkārt rindas (no apakšas uz augšu)Rindai = pēdējā rinda līdz pirmajai rindai -1. darbībaJa .Range ("A" & Rinda) .Value = "insert" Tad.Range ("A" un rinda) .EntireRow.InsertBeigas JaNākamā rindaBeigt arBeigu apakš
wave wave wave wave wave