Koordinata tanlash

Sizda katta monitor bor, lekin siz ishlaydigan jadvallar yanada kattaroq. Va kerakli ma'lumotni izlash uchun ekranga qarab, har doim ko'zingizni keyingi qatorga o'tkazish va noto'g'ri tomonga qarash imkoniyati mavjud. Men hatto shunday odamlarni ham bilamanki, ular har doim yog'och o'lchagichni monitordagi chiziqqa yopishtirish uchun ularga yaqin tutadilar. Kelajak texnologiyalari! 

Va agar faol hujayra varaq bo'ylab harakatlanayotganda joriy satr va ustun ta'kidlangan bo'lsa? Koordinata tanlashning bir turi:

Hukmdordan yaxshiroq, shunday emasmi?

Buni amalga oshirish uchun turli xil murakkablikning bir necha usullari mavjud. Har bir usul o'zining ijobiy va salbiy tomonlariga ega. Keling, ularni batafsil ko'rib chiqaylik.

1-usul. Aniq. Joriy satr va ustunni ta'kidlaydigan so'l

Muammoni "peshonada" hal qilishning eng aniq usuli - biz varaqdagi tanlovning o'zgarishini kuzatadigan va joriy katak uchun butun qator va ustunni tanlaydigan so'l kerak. Agar kerak bo'lsa, ushbu funktsiyani yoqish va o'chirish imkoniyati mavjud bo'lishi kerak, shunda bunday xoch shaklidagi tanlov bizga, masalan, formulalarni kiritishimizga to'sqinlik qilmaydi, faqat kerakli narsalarni qidirishda ro'yxatni ko'rib chiqsak ishlaydi. ma `lumot. Bu bizni varaq moduliga qo'shilishi kerak bo'lgan uchta makrosga (tanlash, yoqish va o'chirish) olib keladi.

Bunday koordinata tanlashni olishni istagan jadval bilan varaqni oching. Varaq yorlig'ini o'ng tugmasini bosing va kontekst menyusidan buyruqni tanlang Manba matni (Manba kodi).Visual Basic Editor oynasi ochilishi kerak. Ushbu uchta makrosning ushbu matnini unga nusxalang:

Dim Coord_Selection As Boolean 'Tanlash uchun global o'zgaruvchini yoqish/o'chirish Sub Selection_On() 'Tanlash bo'yicha makro Coord_Selection = True End Sub Selection_Off() 'Makro o'chirilgan tanlash Coord_Selection = False End Sub 'Tanlovni amalga oshiradigan asosiy protsedura Private SubC Worksheet_Sele_B Range) Dim WorkRange As Range Agar Target.Cells.Count > 1 bo‘lsa, So‘ngra Sub 'agar 1 dan ortiq katak tanlangan bo‘lsa, Coord_Selection = False, keyin Sub-dan chiqing 'agar tanlov o‘chirilgan bo‘lsa, Application.ScreenUpdating = False Set WorkRange = Range. (" A6:N300") 'tanlov ko'rinadigan ish diapazonining manzili  

Ishchi diapazonning manzilini o'zingizga o'zgartiring - bu diapazonda bizning tanlovimiz ishlaydi. Keyin Visual Basic muharririni yoping va Excelga qayting.

Klaviatura yorlig'ini bosing ALT + F8mavjud makroslar ro'yxati bilan oynani ochish uchun. Ibratli Tanlash_On, siz taxmin qilganingizdek, joriy varaqdagi koordinata tanlash va makrosni o'z ichiga oladi Tanlash_O'chirish - o'chiradi. Xuddi shu oynada, tugmani bosish orqali Parameters (Tanlovlar) Oson ishga tushirish uchun ushbu makroslarga klaviatura yorliqlarini belgilashingiz mumkin.

Ushbu usulning afzalliklari:

  • amalga oshirishning nisbatan qulayligi
  • tanlash - operatsiya zararsiz va varaq hujayralarining mazmunini yoki formatini hech qanday tarzda o'zgartirmaydi, hamma narsa avvalgidek qoladi.

Ushbu usulning kamchiliklari:

  • varaqda birlashtirilgan hujayralar mavjud bo'lsa, bunday tanlov to'g'ri ishlamaydi - birlashmaga kiritilgan barcha qatorlar va ustunlar bir vaqtning o'zida tanlanadi.
  • Agar siz tasodifan Delete tugmachasini bossangiz, u holda nafaqat faol katak, balki butun tanlangan maydon, ya'ni butun satr va ustundan ma'lumotlarni o'chirib tashlaydi.

2-usul. Asl. CELL + Shartli formatlash funktsiyasi

Bu usul, garchi u bir nechta kamchiliklarga ega bo'lsa-da, menga juda oqlangan ko'rinadi. Faqat o'rnatilgan Excel vositalaridan foydalangan holda biror narsani amalga oshirish uchun VBA-da dasturlashga minimal kirish - bu aerobatika 😉

Usul ma'lum katak bo'yicha juda ko'p turli xil ma'lumotlarni - balandlik, kenglik, satr-ustun raqami, raqam formati va boshqalarni berishi mumkin bo'lgan CELL funktsiyasidan foydalanishga asoslangan. Bu funktsiyaning ikkita argumenti mavjud:

  • parametr uchun kod so'zi, masalan, "ustun" yoki "satr"
  • biz ushbu parametrning qiymatini aniqlamoqchi bo'lgan katakning manzili

Ayyorlik shundaki, ikkinchi dalil ixtiyoriydir. Agar u ko'rsatilmagan bo'lsa, u holda joriy faol hujayra olinadi.

Ushbu usulning ikkinchi komponenti shartli formatlashdir. Ushbu juda foydali Excel xususiyati, agar ular belgilangan shartlarga javob bersa, hujayralarni avtomatik ravishda formatlash imkonini beradi. Agar biz ushbu ikkita fikrni birlashtirsak, shartli formatlash orqali koordinata tanlashni amalga oshirish uchun quyidagi algoritmni olamiz:

  1. Biz jadvalimizni, ya'ni kelajakda koordinata tanlovi ko'rsatilishi kerak bo'lgan hujayralarni tanlaymiz.
  2. Excel 2003 va undan yuqori versiyalarida menyuni oching Format - Shartli formatlash - Formula (Format - Shartli formatlash - Formula). Excel 2007 va undan yangi versiyalarida - yorliqni bosing Bosh sahifa (Uy)tugma Shartli formatlash - Qoida yaratish (shartli formatlash - qoida yaratish) va qoida turini tanlang Qaysi hujayralarni formatlashni aniqlash uchun formuladan foydalaning (Formuladan foydalaning)
  3. Koordinata tanlashimiz uchun formulani kiriting:

    =YOK(YUYACHA("satr")=QATR(A2),YUKAYA("ustun")=USTUN(A2))

    =YOK(YUYACHA(«satr»)=QATR(A1),YUKAYA(«ustun»)=USTUN(A1))

    Ushbu formula jadvaldagi har bir katakning ustun raqami joriy katakchaning ustun raqami bilan bir xilligini tekshiradi. Xuddi shunday ustunlar bilan. Shunday qilib, faqat ustun raqami yoki joriy katakka mos keladigan satr raqami bo'lgan katakchalar to'ldiriladi. Va bu biz erishmoqchi bo'lgan o'zaro faoliyat shakldagi koordinata tanlovidir.

  4. matbuot Doiraviy (format) va to'ldirish rangini o'rnating.

Hamma narsa deyarli tayyor, lekin bitta nuance bor. Gap shundaki, Excel tanlovdagi o'zgarishlarni varaqdagi ma'lumotlarning o'zgarishi deb hisoblamaydi. Va natijada, u formulalarni qayta hisoblashni va shartli formatlashning rangini faqat faol katakning holati o'zgarganda ishga tushirmaydi. Shuning uchun, keling, buni amalga oshiradigan varaq moduliga oddiy makrosni qo'shamiz. Varaq yorlig'ini o'ng tugmasini bosing va kontekst menyusidan buyruqni tanlang Manba matni (Manba kodi).Visual Basic Editor oynasi ochilishi kerak. Ushbu oddiy makrosning matnini unga nusxalang:

Private Sub Worksheet_SelectionChange(ByVal Maqsad diapazon sifatida) ActiveCell.End Sub-ni hisoblash  

Endi, tanlov o'zgarganda, formulani funktsiya bilan qayta hisoblash jarayoni boshlanadi JONIY shartli formatlashda va joriy satr va ustunni to'ldiring.

Ushbu usulning afzalliklari:

  • Shartli formatlash jadvalning maxsus formatlanishini buzmaydi
  • Ushbu tanlov opsiyasi birlashtirilgan hujayralar bilan to'g'ri ishlaydi.
  • Tasodifiy bosish bilan ma'lumotlarning butun qatori va ustunini o'chirish xavfi yo'q o'chirish.
  • Makroslar minimal darajada qo'llaniladi

Ushbu usulning kamchiliklari:

  • Shartli formatlash uchun formula qo'lda kiritilishi kerak.
  • Bunday formatlashni yoqish/o'chirishning tezkor usuli yo'q - qoida o'chirilmaguncha u har doim yoqiladi.

3-usul. Optimal. Shartli formatlash + Makroslar

Oltin o'rtacha. Biz 1-usuldagi makroslar yordamida varaqdagi tanlovni kuzatish mexanizmidan foydalanamiz va 2-usulda shartli formatlash yordamida unga xavfsiz ta'kidlashni qo'shamiz.

Bunday koordinata tanlashni olishni istagan jadval bilan varaqni oching. Varaq yorlig'ini o'ng tugmasini bosing va kontekst menyusidan buyruqni tanlang Manba matni (Manba kodi).Visual Basic Editor oynasi ochilishi kerak. Ushbu uchta makrosning ushbu matnini unga nusxalang:

Dim Coord_Selection as Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(ByVal maqsad diapazon sifatida) Dim WorkRange diapazon sifatida, CrossRange WorkRange as Range(A Range) =7"N diapazonda. 'adres rabochego diapazona s tablisey Agar Target.Count > 300 bo'lsa, u holda Sub-dan chiqing, agar Coord_Selection = False, WorkRange.FormatConditions.Delete Exit Sub end If Application.ScreenUpdating = False Agar kesishmasa(Nishon, WorkRange) hech narsa o'rnatilmaydi Intersect(Intersect) WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex.Conditions =Format. .Delete End If End Sub  

Ishchi diapazon manzilini jadval manziliga o'zgartirishni unutmang. Visual Basic muharririni yoping va Excelga qayting. Qo'shilgan makroslardan foydalanish uchun klaviatura yorliqlarini bosing ALT + F8  va 1-usul bilan bir xil tarzda davom eting. 

4-usul. Chiroyli. FollowCellPointer qo'shimchasi

Gollandiyalik Excel MVP Yan Karel Piterse o'z veb-saytida bepul plaginni taqdim etadi FollowCellPointer(36Kb), u joriy satr va ustunni ta'kidlash uchun makroslar yordamida grafik o'q chiziqlarini chizish orqali bir xil muammoni hal qiladi:

 

Yaxshi yechim. Joylarda nosozliklarsiz emas, lekin, albatta, sinab ko'rishga arziydi. Arxivni yuklab oling, uni diskka oching va qo'shimchani o'rnating:

  • Excel 2003 va undan yuqori versiyalarida - menyu orqali Xizmat - Qo'shimchalar - Umumiy ko'rinish (Asboblar - Qo'shimchalar - Ko'rib chiqish)
  • Excel 2007 va undan keyingi versiyalarida Fayl - Variantlar - Qo'shimchalar - O'tish - Ko'rib chiqish (Fayl - Excel parametrlari - Qo'shimchalar - O'tish - Ko'rib chiqish)

  • Makroslar nima, Visual Basic dasturida makro kodni qayerga kiritish kerak

 

Leave a Reply