មាតិកា
ការបង្កើតបញ្ហា
យើងមានក្រឡាជាច្រើនដែលមានទិន្នន័យដែលមានក្រឡាទទេ៖
ភារកិច្ចគឺដើម្បីលុបក្រឡាទទេដោយបន្សល់ទុកតែក្រឡាដែលមានព័ត៌មាន។
វិធីសាស្រ្ត 1. រដុបនិងលឿន
- ការជ្រើសរើសជួរដើម
- ចុចគ្រាប់ចុច F5, ប៊ូតុងបន្ទាប់ បន្លិច (ពិសេស). នៅក្នុងបង្អួចដែលបើកសូមជ្រើសរើស ក្រឡាទទេ(ទទេរ) ហើយចុច OK.
ក្រឡាទទេទាំងអស់នៅក្នុងជួរត្រូវបានជ្រើសរើស។
- យើងផ្តល់ពាក្យបញ្ជានៅក្នុងម៉ឺនុយដើម្បីលុបក្រឡាដែលបានជ្រើសរើស៖ ចុចខាងស្តាំ- លុបក្រឡា (លុបក្រឡា) ជាមួយនឹងការផ្លាស់ប្តូរឡើង។
វិធីសាស្រ្តទី 2: រូបមន្តអារេ
ដើម្បីងាយស្រួល សូមដាក់ឈ្មោះជួរការងាររបស់យើងដោយប្រើ អ្នកគ្រប់គ្រងឈ្មោះ (អ្នកគ្រប់គ្រងឈ្មោះ) ផ្ទាំង រូបមន្ត (រូបមន្ត) ឬនៅក្នុង Excel 2003 និងចាស់ជាងនេះ ម៉ឺនុយ បញ្ចូល - ឈ្មោះ - ចាត់តាំង (បញ្ចូល - ឈ្មោះ - កំណត់)
ដាក់ឈ្មោះជួរ B3:B10 ទំនេរជួរ D3:D10 – គ្មានទទេ. ជួរត្រូវតែមានទំហំដូចគ្នាយ៉ាងតឹងរឹង ហើយអាចមានទីតាំងនៅគ្រប់ទីកន្លែងដែលទាក់ទងគ្នាទៅវិញទៅមក។
ឥឡូវជ្រើសរើសក្រឡាទីមួយនៃជួរទីពីរ (D3) ហើយបញ្ចូលរូបមន្តគួរឱ្យខ្លាចនេះទៅក្នុងវា៖
=IF(ROW() -ROW(NoEmpty)+1>NOTROWS(YesEmpty)-COUNTBLANK(YesEmpty);"";INDIRECT(ADDRESS(ទាបបំផុត((IF(Empty<>""),ROW(Empty);ROW() + ROWS(មានទទេ))); LINE()-ROW(គ្មានទទេ)+1); COLUMN(មានទទេ); 4)))
នៅក្នុងកំណែភាសាអង់គ្លេសវានឹងមានៈ
=IF(ROW()-ROW(NoEmpty)+1>ROWS(Empty)-COUNTBLANK(Empty),"",INDIRECT(ADDRESS(SMALL((IF(Empty<>"",ROW(Empty),ROW()) +ROWS(HaveEmpty))), ROW()-ROW(NoEmpty)+1),COLUMN(HaveEmpty),4)))
លើសពីនេះទៅទៀត វាត្រូវតែបញ្ចូលជារូបមន្តអារេ ពោលគឺចុចបន្ទាប់ពីបិទភ្ជាប់ បញ្ចូល (ដូចធម្មតា) និង បញ្ជា (Ctrl) + ប្ដូរ (Shift) + បញ្ចូល (Enter). ឥឡូវរូបមន្តអាចត្រូវបានចម្លងដោយប្រើការបំពេញដោយស្វ័យប្រវត្តិ (អូសឈើឆ្កាងខ្មៅនៅជ្រុងខាងក្រោមស្តាំនៃក្រឡា) ហើយយើងនឹងទទួលបានជួរដើម ប៉ុន្តែគ្មានក្រឡាទទេ៖
វិធីសាស្រ្ត 3. មុខងារផ្ទាល់ខ្លួននៅក្នុង VBA
ប្រសិនបើមានការសង្ស័យដែលអ្នកនឹងត្រូវធ្វើបែបបទម្តងទៀតសម្រាប់ការយកក្រឡាទទេចេញពីជួរ នោះវាជាការប្រសើរក្នុងការបន្ថែមមុខងារផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការយកក្រឡាទទេទៅការកំណត់ស្តង់ដារម្តង ហើយប្រើវានៅក្នុងករណីបន្តបន្ទាប់ទាំងអស់។
ដើម្បីធ្វើដូចនេះបើកកម្មវិធីនិពន្ធ Visual Basic (ALT + F11 ។) បញ្ចូលម៉ូឌុលទទេថ្មី (ម៉ឺនុយ បញ្ចូល - ម៉ូឌុល) ហើយចម្លងអត្ថបទនៃមុខងារនេះនៅទីនោះ៖
អនុគមន៍ NoBlanks(DataRange As Range) As Variant() Dim N As Long Dim N2 As Long Dim Rng As Range Dim MaxCells As Long Dim Result() As Variant Dim R As Long Dim C As Long MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) លទ្ធផល ReDim(1 ដល់ MaxCells, 1 ទៅ 1) សម្រាប់ Rng នីមួយៗក្នុង DataRange.Cells ប្រសិនបើ Rng.Value <> vbNullString បន្ទាប់មក N = N + 1 Result(N, 1 ) = Rng.Value End ប្រសិនបើ Next Rng សម្រាប់ N2 = N + 1 ទៅ MaxCells Result(N2, 1) = vbNullString Next N2 ប្រសិនបើ Application.Caller.Rows.Count = 1 បន្ទាប់មក NoBlanks = Application.Transpose(លទ្ធផល) Else NoBlanks = លទ្ធផល មុខងារ End If End
កុំភ្លេចរក្សាទុកឯកសារ ហើយប្តូរពី Visual Basic Editor ទៅ Excel។ ដើម្បីប្រើមុខងារនេះក្នុងឧទាហរណ៍របស់យើង៖
- ជ្រើសរើសជួរគ្រប់គ្រាន់នៃក្រឡាទទេ ឧទាហរណ៍ F3:F10។
- ចូលទៅកាន់មឺនុយ បញ្ចូល - មុខងារ (បញ្ចូល - មុខងារ)ឬចុចលើប៊ូតុង បញ្ចូលមុខងារ (បញ្ចូលមុខងារ) ផ្ទាំង រូបមន្ត (រូបមន្ត) នៅក្នុងកំណែថ្មីនៃ Excel ។ នៅក្នុងប្រភេទ អ្នកប្រើប្រាស់កំណត់ (អ្នកប្រើប្រាស់កំណត់) ជ្រើសរើសមុខងាររបស់យើង។ NoBlanks.
- បញ្ជាក់ជួរប្រភពដោយចាត់ទុកជាមោឃៈ (B3:B10) ជាអាគុយម៉ង់មុខងារ និងចុច បញ្ជា (Ctrl) + ប្ដូរ (Shift) + បញ្ចូល (Enter)ដើម្បីបញ្ចូលអនុគមន៍ជារូបមន្តអារេ។
:
- ការលុបជួរទទេទាំងអស់ក្នុងតារាងក្នុងពេលតែមួយជាមួយម៉ាក្រូសាមញ្ញ
- ការដកជួរទទេទាំងអស់នៅក្នុងសន្លឹកកិច្ចការក្នុងពេលតែមួយដោយប្រើកម្មវិធីបន្ថែម PLEX
- បំពេញក្រឡាទទេទាំងអស់។
- តើម៉ាក្រូជាអ្វី កន្លែងដែលត្រូវបញ្ចូលកូដម៉ាក្រូក្នុង VBA