Pemilihan Koordinat

Anda mempunyai monitor yang besar, tetapi meja yang anda gunakan adalah lebih besar. Dan, melihat ke atas skrin untuk mencari maklumat yang diperlukan, sentiasa ada peluang untuk "meluncur" mata anda ke baris seterusnya dan melihat ke arah yang salah. Saya juga mengenali orang yang, pada majlis-majlis sebegitu, sentiasa meletakkan pembaris kayu dekat dengan mereka untuk melekatkannya pada garisan pada monitor. Teknologi masa depan! 

Dan jika baris dan lajur semasa diserlahkan apabila sel aktif bergerak merentasi helaian? Sejenis pemilihan koordinat seperti ini:

Lebih baik daripada pembaris, bukan?

Terdapat beberapa cara untuk mempelbagaikan kerumitan untuk melaksanakan ini. Setiap kaedah ada kebaikan dan keburukannya. Mari kita lihat mereka secara terperinci.

Kaedah 1. Jelas. Makro yang menyerlahkan baris dan lajur semasa

Cara paling jelas untuk menyelesaikan masalah kami "di dahi" - kami memerlukan makro yang akan menjejaki perubahan dalam pemilihan pada helaian dan memilih keseluruhan baris dan lajur untuk sel semasa. Ia juga wajar untuk membolehkan dan melumpuhkan fungsi ini jika perlu, supaya pemilihan berbentuk silang tidak menghalang kita daripada memasuki, contohnya, formula, tetapi hanya berfungsi apabila kita melihat senarai untuk mencari yang diperlukan maklumat. Ini membawa kita kepada tiga makro (pilih, dayakan dan lumpuhkan) yang perlu ditambahkan pada modul helaian.

Buka helaian dengan jadual di mana anda ingin mendapatkan pemilihan koordinat sedemikian. Klik kanan pada tab helaian dan pilih arahan daripada menu konteks Teks sumber (Kod sumber).Tetingkap Visual Basic Editor harus dibuka. Salin teks tiga makro ini ke dalamnya:

Malapkan Coord_Selection Sebagai Boolean 'Pembolehubah global untuk pemilihan hidup/mati Sub Selection_On() 'Makro pada pilihan Coord_Selection = True End Sub Selection_Off() 'Makro off selection Coord_Selection = False End Sub 'Prosedur utama yang melaksanakan pemilihan Subsheet_Selection PrivateChange As(ByVal Target Julat) Malapkan Julat Kerja Sebagai Julat Jika Sasaran.Cells.Count > 1 Kemudian Keluar Sub 'jika lebih daripada 1 sel dipilih, keluar Jika Coord_Selection = Palsu Kemudian Keluar Sub' jika pilihan dimatikan, keluar dari Application.ScreenUpdating = Palsu Set WorkRange = Julat (" A6:N300") 'alamat julat kerja di mana pemilihan boleh dilihat  

Tukar alamat julat kerja kepada anda sendiri – dalam julat inilah pilihan kami akan berfungsi. Kemudian tutup Editor Visual Basic dan kembali ke Excel.

Tekan pintasan papan kekunci ALT + F8untuk membuka tetingkap dengan senarai makro yang tersedia. Makro Selection_On, seperti yang anda mungkin rasa, termasuk pemilihan koordinat pada helaian semasa dan makro Selection_Off – mematikannya. Dalam tetingkap yang sama, dengan mengklik butang Parameter (Pilihan) Anda boleh menetapkan pintasan papan kekunci kepada makro ini untuk pelancaran yang mudah.

Kelebihan kaedah ini:

  • relatif mudah dilaksanakan
  • pemilihan – operasi tidak berbahaya dan tidak mengubah kandungan atau pemformatan sel helaian dalam apa jua cara, semuanya kekal seperti sedia ada

Kelemahan kaedah ini:

  • pemilihan sedemikian tidak berfungsi dengan betul jika terdapat sel yang digabungkan pada helaian – semua baris dan lajur yang disertakan dalam kesatuan dipilih sekaligus
  • jika anda secara tidak sengaja menekan kekunci Padam, maka bukan sahaja sel aktif akan dikosongkan, tetapi keseluruhan kawasan yang dipilih, iaitu padam data daripada keseluruhan baris dan lajur

Kaedah 2. Asal. CELL + Fungsi Pemformatan Bersyarat

Kaedah ini, walaupun ia mempunyai beberapa kelemahan, nampaknya saya sangat elegan. Untuk melaksanakan sesuatu hanya menggunakan alat Excel terbina dalam, masuk ke pengaturcaraan secara minimum dalam VBA adalah aerobatik 😉

Kaedah ini berdasarkan penggunaan fungsi CELL, yang boleh memberikan banyak maklumat berbeza pada sel tertentu – ketinggian, lebar, nombor baris-lajur, format nombor, dll. Fungsi ini mempunyai dua hujah:

  • perkataan kod untuk parameter, seperti "lajur" atau "baris"
  • alamat sel yang kita ingin tentukan nilai parameter ini

Caranya ialah hujah kedua adalah pilihan. Jika ia tidak dinyatakan, maka sel aktif semasa diambil.

Komponen kedua kaedah ini ialah pemformatan bersyarat. Ciri Excel yang sangat berguna ini membolehkan anda memformat sel secara automatik jika ia memenuhi syarat yang ditetapkan. Jika kami menggabungkan dua idea ini menjadi satu, kami mendapat algoritma berikut untuk melaksanakan pemilihan koordinat kami melalui pemformatan bersyarat:

  1. Kami memilih jadual kami, iaitu sel-sel di mana pemilihan koordinat harus dipaparkan pada masa hadapan.
  2. Dalam Excel 2003 dan lebih lama, buka menu Format – Pemformatan Bersyarat – Formula (Format — Pemformatan Bersyarat — Formula). Dalam Excel 2007 dan lebih baharu – klik pada tab Laman Utama (Rumah)butang Pemformatan Bersyarat – Cipta Peraturan (Pemformatan Bersyarat — Cipta Peraturan) dan pilih jenis peraturan Gunakan formula untuk menentukan sel mana yang akan diformat (Gunakan formula)
  3. Masukkan formula untuk pemilihan koordinat kami:

    =ATAU(CELL(“baris”)=ROW(A2),CELL(“lajur”)=LAjur(A2))

    =ATAU(CELL(«baris»)=ROW(A1),CELL(«lajur»)=LAJUR(A1))

    Formula ini menyemak untuk melihat sama ada nombor lajur setiap sel dalam jadual adalah sama dengan nombor lajur sel semasa. Begitu juga dengan lajur. Oleh itu, hanya sel yang mempunyai sama ada nombor lajur atau nombor baris yang sepadan dengan sel semasa akan diisi. Dan ini ialah pemilihan koordinat berbentuk silang yang ingin kita capai.

  4. akhbar Rangka Kerja (Format) dan tetapkan warna isian.

Segala-galanya hampir siap, tetapi ada satu nuansa. Hakikatnya ialah Excel tidak menganggap perubahan dalam pemilihan sebagai perubahan dalam data pada helaian. Dan, akibatnya, ia tidak mencetuskan pengiraan semula formula dan pewarnaan semula pemformatan bersyarat hanya apabila kedudukan sel aktif berubah. Oleh itu, mari tambahkan makro ringkas pada modul helaian yang akan melakukan ini. Klik kanan pada tab helaian dan pilih arahan daripada menu konteks Teks sumber (Kod sumber).Tetingkap Visual Basic Editor harus dibuka. Salin teks makro ringkas ini ke dalamnya:

Sub Helaian Kerja_SelectionChange(Sasaran ByVal Sebagai Julat) ActiveCell.Calculate End Sub  

Kini, apabila pemilihan berubah, proses pengiraan semula formula dengan fungsi akan dilancarkan SEL dalam pemformatan bersyarat dan banjir baris dan lajur semasa.

Kelebihan kaedah ini:

  • Pemformatan bersyarat tidak memecahkan pemformatan jadual tersuai
  • Pilihan pemilihan ini berfungsi dengan betul dengan sel yang digabungkan.
  • Tiada risiko memadamkan keseluruhan baris dan lajur data pada klik tidak sengaja Padam.
  • Makro digunakan secara minima

Kelemahan kaedah ini:

  • Formula untuk pemformatan bersyarat mesti dimasukkan secara manual.
  • Tiada cara cepat untuk mendayakan/melumpuhkan pemformatan tersebut – ia sentiasa didayakan sehingga peraturan dipadamkan.

Kaedah 3. Optimum. Pemformatan Bersyarat + Makro

Maksud emas. Kami menggunakan mekanisme untuk menjejaki pemilihan pada helaian menggunakan makro daripada kaedah-1 dan menambahkan penyerlahan selamat padanya menggunakan pemformatan bersyarat daripada kaedah-2.

Buka helaian dengan jadual di mana anda ingin mendapatkan pemilihan koordinat sedemikian. Klik kanan pada tab helaian dan pilih arahan daripada menu konteks Teks sumber (Kod sumber).Tetingkap Visual Basic Editor harus dibuka. Salin teks tiga makro ini ke dalamnya:

Malapkan Coord_Selection Sebagai Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Subsheet_SelectionChange(ByVal Sasaran Sebagai Julat) Malapkan Julat Kerja Sebagai Julat, CrossJulat Sebagai Julat Set Julat Kerja = N7 'адрес рабочего диапазона с таблицей If Target.Count > 300 Then Exit Sub If Coord_Selection = False Then WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not CrossRangeSelection Is No, WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not CrossRangeTset (Sasaran Bersilang) Adalah Tiada, WorkRange. WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkJulat.FormatConditions.Padam CrossJulat.FormatConditions.Tambah Jenis:=xlExpression, Formula1:="=1" CrossJulat.FormatConditions(1).Interior.ColorIndex = 1 Sasaran.FormatConditions .Padam Tamat Jika End Sub  

Jangan lupa untuk menukar alamat julat kerja kepada alamat meja anda. Tutup Editor Visual Basic dan kembali ke Excel. Untuk menggunakan makro yang ditambahkan, tekan pintasan papan kekunci ALT + F8  dan teruskan dengan cara yang sama seperti kaedah 1. 

Kaedah 4. Cantik. Alat tambah FollowCellPointer

MVP Excel Jan Karel Pieterse dari Belanda memberikan tambahan percuma di tapak webnya FollowCellPointer(36Kb), yang menyelesaikan masalah yang sama dengan melukis garisan anak panah grafik menggunakan makro untuk menyerlahkan baris dan lajur semasa:

 

Penyelesaian yang bagus. Bukan tanpa gangguan di tempat, tetapi pasti berbaloi untuk dicuba. Muat turun arkib, buka bungkusannya ke cakera dan pasang alat tambah:

  • dalam Excel 2003 dan lebih lama – melalui menu Perkhidmatan – Alat tambah – Gambaran keseluruhan (Alat — Add-In — Semak imbas)
  • dalam Excel 2007 dan kemudian, melalui Fail – Pilihan – Alat tambah – Pergi – Semak imbas (Fail — Pilihan Excel — Tambahan — Pergi ke — Semak imbas)

  • Apakah makro, tempat untuk memasukkan kod makro dalam Visual Basic

 

Sila tinggalkan balasan anda