Để dễ hình dung, mình xin mô tả bảng số liệu thực nghiệm được ghi ở cột 'A' như dưới đây:
::​
00| . . A
01|SL Thực nghiệm
02|++++++
03|0
04|G
05|++++++
06|w
07|C
08|z
09|++++++
10|0
11|C
12|C
13|Good
14|++++++
15|GPE
16|Good
17|0
:nguguc:​
Nhiệm vụ đề ra là giữa các thí nghiệm (được fân cách bỡi dòng có 5 dấu '+')
Nếu chỉ cần có 1 dữ liệu thí nghiệm được đánh giá là 'C' thì xóa toàn vùng/dòng của thực nghiệm đó. Việc xóa này tiến hành bắt đầu từ dòng có 6 "+" cho đến trước dòng 6 chữ "+" kế tiếp

Trong bảng trên, các dòng bị xóa sẽ là
Từ dòng 5 đến dòng 8 vì [A7] có chứa 'C'
Từ dòng 9 đến dòng 13 vì [A11] có chứa 'C'

Dưới đây là nội dung macro; Nhưng macro này chỉ mới tô màu để kiểm tra thôi; Nó chưa thực sự xóa các dòng đó. Nó còn chờ hiệu lệnh của các bạn!



Mã nguồn PHP:
[COLOR=#000000]
Option Explicit Sub XoaKhoang[/COLOR][COLOR=#007700]() Const [/COLOR][COLOR=#0000BB]CTh [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"++++++" [/COLOR][COLOR=#0000BB]Dim Rng [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]sRng [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]fRg [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Cls [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range Dim MyAdd [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]jJ [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long Set Rng [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([[/COLOR][COLOR=#0000BB]A1[/COLOR][COLOR=#007700]], [[/COLOR][COLOR=#0000BB]A65500[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]End[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]xlUp[/COLOR][COLOR=#007700])) [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Interior[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]ColorIndex [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0 Set sRng [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Find[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]CTh[/COLOR][COLOR=#007700], , [/COLOR][COLOR=#0000BB]xlFormulas[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]xlWhole[/COLOR][COLOR=#007700]) If [/COLOR][COLOR=#0000BB]Not sRng Is Nothing Then MyAdd [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]sRng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Address [/COLOR][COLOR=#007700]Do [/COLOR][COLOR=#0000BB]jJ [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]jJ [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1 [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]jJ [/COLOR][COLOR=#007700]> [/COLOR][COLOR=#0000BB]1 Then [/COLOR][COLOR=#007700]For [/COLOR][COLOR=#0000BB]Each Cls In Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]fRg[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]sRng[/COLOR][COLOR=#007700]) If [/COLOR][COLOR=#0000BB]UCase[/COLOR][COLOR=#007700]$([/COLOR][COLOR=#0000BB]Cls[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Value[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#DD0000]"C" [/COLOR][COLOR=#0000BB]Then Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]fRg[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]sRng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](-[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700])).[/COLOR][COLOR=#0000BB]Interior[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]ColorIndex [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]34 [/COLOR][COLOR=#007700]+ ([/COLOR][COLOR=#0000BB]jJ Mod 9[/COLOR][COLOR=#007700]) Exit For [/COLOR][COLOR=#0000BB]End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]Next Cls End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]Set fRg [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]sRng Set sRng [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]FindNext[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]sRng[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Loop [/COLOR][COLOR=#007700]While [/COLOR][COLOR=#0000BB]Not sRng Is Nothing [/COLOR][COLOR=#007700]And [/COLOR][COLOR=#0000BB]sRng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Address [/COLOR][COLOR=#007700]<> [/COLOR][COLOR=#0000BB]MyAdd End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]End Sub [/COLOR