Sub FindBHForAllLayers()Dim ws As WorksheetDim wsTarget As WorksheetDim resultRow As LongDim col As Long, targetCol As LongDim lastCol As LongDim layerName As StringSet ws = ThisWorkbook.Sheets("Layer summary")Set wsTarget = ThisWorkbook.ActiveSheetlastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column' 清除之前的结果wsTarget.Range("C2:ZZ50").ClearContents' 遍历每个可能的layer起始列(B,G,L...)For targetCol =2 To lastCol Step 5layerName = wsTarget.Cells(1, targetCol).ValueIf Not IsEmpty(layerName) ThenresultRow =2 '每个layer从第2行开始填写' 在Layer summary中搜索这个layerFor col =1 To lastCol Step 5If Not IsEmpty(ws.Cells(1, col)) Then' 检查该组中的Description列是否包含当前layerDim rng As RangeSet rng = ws.Range(ws.Cells(1, col +3), ws.Cells(50, col +3))If Not IsError(Application.Match(layerName, rng,0)) Then' 写入到layer名称的右边一列wsTarget.Cells(resultRow, targetCol +1).Value = ws.Cells(1, col).ValueresultRow = resultRow +1End IfEnd IfNext colEnd IfNext targetCol
End Sub
一、责任链模式的本质:灵活可扩展的流水线处理
责任链模式(Chain of Responsibility Pattern)是行为型设计模式的代表,其核心思想是将请求的发送者与接收者解耦,允许多个对象都有机会处理请求。这种模式完美解决了以下…
在 SQL Server 中,查询的执行并不是按照我们编写的 SQL 语句的顺序进行的。相反,SQL Server 有自己的一套逻辑处理顺序,这个顺序决定了查询的执行方式和结果集的生成。了解这些处理阶段和顺序对于优化查询性能和调试复杂查询非常重要。
SQL …