Talaan ng nilalaman
Sa tutorial na ito, matututunan mo ang 3 iba't ibang paraan upang dynamic na i-highlight ang row at column ng isang napiling cell sa Excel.
Kapag tinitingnan mo ang isang malaking worksheet sa mahabang panahon, ikaw sa kalaunan ay maaaring mawalan ng track kung nasaan ang iyong cursor at kung aling data ang iyong tinitingnan. Para malaman kung nasaan ka anumang oras, hilingin sa Excel na awtomatikong i-highlight ang aktibong row at column para sa iyo! Natural, ang pag-highlight ay dapat na dynamic at nagbabago sa tuwing pipili ka ng isa pang cell. Sa totoo lang, ito ang nilalayon naming makamit:
Awtomatikong i-highlight ang row at column ng napiling cell gamit ang VBA
Ito Ipinapakita ng halimbawa kung paano mo maaaring i-highlight ang isang aktibong column at row sa programmatically gamit ang VBA. Para dito, gagamitin namin ang kaganapang SelectionChange ng object na Worksheet .
Una, ki-clear mo ang kulay ng background ng lahat ng mga cell sa sheet sa pamamagitan ng pagtatakda ng ColorIndex property sa 0. At pagkatapos, i-highlight mo ang buong row at column ng aktibong cell sa pamamagitan ng pagtatakda ng kanilang ColorIndex property sa index number para sa gustong kulay.
Private Sub Worksheet_SelectionChange ( ByVal Target Bilang Saklaw) Kung Target.Cells.Count > 1 Pagkatapos Lumabas sa Sub Application.ScreenUpdating = False 'I-clear ang kulay ng lahat ng mga cell Cells.Interior.ColorIndex = 0 Gamit ang Target na 'I-highlight ang row at column ng napiling cell .EntireRow.Interior.ColorIndex = 38.EntireColumn.Interior.ColorIndex = 24 End With Application.ScreenUpdating = True End SubPag-customize ng code
Kung gusto mong i-customize ang code para sa iyong mga pangangailangan, maaaring magamit ang maliliit na tip na ito:
- Gumagamit ang aming sample na code ng dalawang magkaibang kulay na ipinakita sa gif sa itaas - color index 38 para sa row at 24 para sa column. Upang baguhin ang kulay ng highlight , palitan lang ang mga iyon ng anumang ColorIndex code na iyong pinili.
- Upang makulayan ang row at column sa parehong paraan , gamitin ang parehong color index number para sa dalawa.
- Upang i-highlight lamang ang aktibong row , alisin o ikomento ang linyang ito: .EntireColumn.Interior.ColorIndex = 24
- Upang i-highlight lamang ang aktibong column , alisin o ikomento ang linyang ito: .EntireRow.Interior.ColorIndex = 38
Paano idagdag ang code sa iyong worksheet
Upang tahimik na maipatupad ang code sa background ng isang partikular na worksheet, kailangan mong ipasok ito sa window ng code na kabilang sa worksheet na iyon, hindi sa normal na module. Upang magawa ito, isagawa ang mga hakbang na ito:
- Sa iyong workbook, pindutin ang Alt + F11 upang makapunta sa VBA editor.
- Sa Project Explorer sa kaliwa, ikaw ay Makakakita ng listahan ng lahat ng bukas na workbook at ang kanilang mga worksheet. Kung hindi mo ito nakikita, gamitin ang Ctrl + R shortcut upang dalhin ang Project Explorer window upang tingnan.
- Hanapin ang target na workbook. Sa Microsoft Excel nitoObjects folder, i-double click ang sheet kung saan mo gustong ilapat ang pag-highlight. Sa halimbawang ito, ito ay Sheet 1 .
- Sa window ng Code sa kanan, i-paste ang code sa itaas.
- I-save ang iyong file bilang Macro-Enabled Workbook (.xlsm).
Mga Bentahe : lahat ay tapos na sa backend; walang mga pagsasaayos/pagpapasadya ang kailangan sa panig ng user; gumagana sa lahat ng bersyon ng Excel.
Mga Kakulangan : mayroong dalawang mahahalagang downsides na ginagawang hindi naaangkop ang diskarteng ito sa ilang partikular na sitwasyon:
- Ang code nag-clear ng background mga kulay ng lahat ng mga cell sa worksheet. Kung mayroon kang anumang mga cell na may kulay, huwag gamitin ang solusyon na ito dahil mawawala ang iyong custom na pag-format.
- Ang pag-execute ng code na ito bina-block ang pag-andar ng pag-undo sa sheet, at hindi mo magagawang i-undo ang isang maling aksyon sa pamamagitan ng pagpindot sa Ctrl + Z .
I-highlight ang aktibong row at column nang walang VBA
Ang pinakamahusay na makukuha mo upang i-highlight ang napiling row at Ang /o column na walang VBA ay conditional formatting ng Excel. Upang i-set up ito, isagawa ang mga hakbang na ito:
- Piliin ang iyong dataset kung saan dapat gawin ang pag-highlight.
- Sa tab na Home , sa Mga Estilo pangkat, i-click ang Bagong Panuntunan .
- Sa dialog box na Bagong Panuntunan sa Pag-format , piliin ang Gumamit ng formula upang matukoy kung aling mga cell ang format .
- Sa Format value kung saan ang formula na itoay totoo box, ilagay ang isa sa mga formula na ito:
Para i-highlight ang aktibong row :
=CELL("row")=ROW()
Upang i-highlight ang aktibong column :
=CELL("col")=COLUMN()
Upang i-highlight ang aktibong row at column :
=OR(CELL("row")=ROW(), CELL("col")= COLUMN())
Ginagamit ng lahat ng formula ang CELL function upang ibalik ang row/column number ng napiling cell.
- I-click ang button na Format , lumipat sa tab na Punan , at piliin ang kulay na gusto mo.
- I-click ang OK nang dalawang beses upang isara parehong dialog window.
Kung sa tingin mo ay kailangan mo ng mas detalyadong mga tagubilin, pakitingnan ang Paano gumawa ng formula-based conditional formatting rule.
Para sa halimbawang ito, pinili namin ang OR formula upang lilim ang parehong column at row sa parehong kulay. Iyon ay tumatagal ng mas kaunting trabaho at angkop para sa karamihan ng mga kaso.
Sa kasamaang palad, ang solusyon na ito ay hindi kasing ganda ng VBA dahil nangangailangan ito ng manu-manong pagkalkula ng sheet (sa pamamagitan ng pagpindot sa F9 key). Bilang default, muling kinakalkula ng Excel ang isang worksheet pagkatapos lamang magpasok ng bagong data o i-edit ang umiiral na, ngunit hindi kapag nagbago ang pagpili. Kaya, pumili ka ng isa pang cell - walang mangyayari. Pindutin ang F9 - nire-refresh ang sheet, muling kinakalkula ang formula, at ina-update ang pag-highlight.
Upang awtomatikong muling kalkulahin ang worksheet sa tuwing may kaganapang SelectionChange nangyayari, maaari mong ilagay ang simpleng VBA code na ito sa code module ng iyong target sheet gaya ng ipinaliwanag saang nakaraang halimbawa:
Pribadong Sub Worksheet_SelectionChange( ByVal Target As Range) Target.Calculate End SubPinipilit ng code ang napiling range/cell na muling kalkulahin, na kung saan ay pinipilit ang CELL function na i-update at ang conditional formatting upang ipakita ang pagbabago.
Mga Bentahe : hindi katulad ng naunang pamamaraan, hindi ito makakaapekto sa kasalukuyang pag-format na iyong inilapat nang manu-mano.
Mga sagabal : maaaring lumala ang performance ng Excel.
- Para gumana ang conditional formatting, kailangan mong pilitin ang Excel na kalkulahin muli ang formula sa bawat pagbabago sa pagpili (manu-mano man gamit ang F9 key o awtomatikong gamit ang VBA). Maaaring pabagalin ng sapilitang muling pagkalkula ang iyong Excel. Dahil muling kinakalkula ng aming code ang pagpili sa halip na isang buong sheet, ang negatibong epekto ay malamang na mapapansin lamang sa talagang malaki at kumplikadong mga workbook.
- Dahil ang CELL function ay available sa Excel 2007 at mas mataas, ang paraan ay mananalo' t gumagana sa mga naunang bersyon.
I-highlight ang napiling row at column gamit ang conditional formatting at VBA
Kung sakaling ang nakaraang paraan ay nagpapabagal nang husto sa iyong workbook, maaari mong lapitan ang gawain sa ibang paraan - sa halip ng muling pagkalkula ng worksheet sa bawat paglipat ng user, kunin ang aktibong numero ng row/column sa tulong ng VBA, at pagkatapos ay ihatid ang numerong iyon sa function na ROW() o COLUMN() sa pamamagitan ng paggamit ng mga conditional formatting formula.
Sa tuparin ito,narito ang mga hakbang na kailangan mong sundin:
- Magdagdag ng bagong blangkong sheet sa iyong workbook at pangalanan itong Helper Sheet . Ang tanging layunin ng sheet na ito ay mag-imbak ng dalawang numero na kumakatawan sa row at column na naglalaman ng napiling cell, para ligtas mong maitago ang sheet sa ibang pagkakataon.
- Ipasok ang VBA sa ibaba sa window ng code ng worksheet kung saan mo gustong ipatupad ang pag-highlight. Para sa mga detalyadong tagubilin, mangyaring sumangguni sa aming unang halimbawa. Pribadong Sub Worksheet_SelectionChange( ByVal Target As Range) Application.ScreenUpdating = False Worksheet( "Helper Sheet" ).Cells(2, 1) = Target.Row Worksheet( "Helper Sheet" ).Cells(2, 2) = Target.Column Application.ScreenUpdating = True End Sub
Inilalagay ng code sa itaas ang mga coordinate ng aktibong row at column sa sheet na pinangalanang "Helper Sheet". Kung pinangalanan mo ang iyong sheet nang iba sa hakbang 1, palitan ang pangalan ng worksheet sa code nang naaayon. Ang row number ay isinusulat sa A2 at ang column number sa B2.
- Sa iyong target na worksheet, piliin ang buong dataset, at gumawa ng kondisyonal na panuntunan sa pag-format gamit ang mga formula sa ibaba. Ang sunud-sunod na patnubay ay ibinigay sa halimbawa sa itaas.
At ngayon, saklawin natin nang detalyado ang tatlong pangunahing kaso ng paggamit.
Paano i-highlight ang aktibong row
Upang i-highlight ang row kung saan nakalagay ang iyong cursor sa ngayon, mag-set up ng conditional formatting rule gamit itoformula:
=ROW()='Helper Sheet'!$A$2
Bilang resulta, malinaw na makikita ng user kung aling row ang kasalukuyang napili:
Paano i-highlight ang aktibong column
Upang i-highlight ang napiling column, i-feed ang column number sa COLUMN function gamit ang formula na ito:
=COLUMN()='Helper Sheet'!$B$2
Ngayon, binibigyang-daan ka ng naka-highlight na column nang kumportable at walang kahirap-hirap na basahin ang vertical data na ganap na nakatuon dito.
Paano i-highlight ang aktibong row at column
Upang awtomatikong mai-shade sa parehong kulay ang napiling row at column, pagsamahin ang ROW() at COLUMN() function sa isang formula:
=OR(ROW()='Helper Sheet'!$A$2, COLUMN()='Helper Sheet'!$B$2)
Agad na itinuon ang nauugnay na data, para maiwasan mo itong maling basahin.
Mga Bentahe : na-optimize na pagganap; gumagana sa lahat ng bersyon ng Excel
Mga Sagabal : ang pinakamahabang setup
Ganyan i-highlight ang column at row ng napiling cell sa Excel. Salamat sa pagbabasa at umaasa akong makita ka sa aming blog sa susunod na linggo!
Magsanay ng workbook para sa pag-download
Hina-highlight ang aktibong row at column (.xlsm file)