Option Explicit
Sub TEST()
Dim Brr, Crr, i&, j%, R&, T$
'↑宣告變數
Brr = Intersect(Range([A1], ActiveSheet.UsedRange), [A:G])
'↑令Brr變數是 裝盛指定儲存格值的二維陣列
ReDim Crr(1 To 1000, 1 To 4)
'↑宣告Crr變數是二維 空陣列
For i = 4 To UBound(Brr)
'↑設順迴圈!i從3到Brr陣列縱向最大索引列號
If T <> Trim(Brr(i, 1)) And Trim(Brr(i, 1)) <> "" Then T = Trim(Brr(i, 1))
'↑如果T變數與 i迴圈列第1欄Brr陣列值(且不是空值)不同??就令T是該值
If Trim(Brr(i, 3)) = "" Then GoTo i01
'↑如果姓名欄是空的? True就跳到標示 i01位置繼續執行
For j = 4 To 7
'↑設順迴圈!j從4到7
If InStr("/中/康/", "/" & Trim(Brr(i, j)) & "/") Then GoTo i01
'↑如果 動態欄格裡是"中"或"康"? True就跳到標示 i01位置繼續執行
Next
R = R + 1
'↑令R變數累加 1
Crr(R, 1) = Brr(2, 1)
'↑令R變數列第1欄Crr陣列值是 樓層
Crr(R, 2) = T
'↑令R變數列第2欄Crr陣列值是 房號
Crr(R, 3) = Brr(i, 2)
'↑令R變數列第3欄Crr陣列值是 序號
Crr(R, 4) = Brr(i, 3)
'↑令R變數列第4欄Crr陣列值是 姓名
i01: Next
[L:O].ClearContents
'↑令結果欄清除內容
If R = 0 Then Exit Sub
'↑如果R變數是 0(代表沒有符合的資料),就結束程式執行
[L4].Resize(R, 4) = Crr
'↑令指定儲存格擴展剛好的範圍儲存格值以Crr陣列值帶入
End Sub