簡體   English   中英

如何在 Excel 中使用 VBA 根據換行符過濾單個單元格中的行?

[英]How can I use VBA in Excel to filter lines in a single cell based on line breaks?

我有這個包含部件號及其狀態的單元格(以及一整列類似單元格),我需要過濾掉標記為完成的數字,同時保留 rest。
單元格示例

我知道有一種方法可以根據換行符分隔信息,但在那之后我不知所措。 我嘗試從單元格創建一個數組,但該數組很難刪除信息。

我覺得有一個簡單的解決方案,但我只是沒有看到它。 *編輯-我使用的是 Excel 2016,所以我沒有很多新功能。

試試這個公式(數據在單元格 A1 中):

=LET(XML, "<t><s>" & SUBSTITUTE(A1,CHAR(10),"</s><s>") & "</s></t>",
          Data, FILTERXML(XML,"//s"),
          FILTER(Data,NOT(ISNUMBER(SEARCH("Complete",Data)))))  

或者如果您希望它在單個單元格中返回:

=TEXTJOIN(CHAR(10),TRUE,
          LET(XML, "<t><s>" & SUBSTITUTE(A1,CHAR(10),"</s><s>") & "</s></t>",
                 Data, FILTERXML(XML,"//s"),
                 FILTER(Data,NOT(ISNUMBER(SEARCH("Complete",Data))))))
colArray = Array("H")
        check_col = colArray(0)
        ColLastRow = Range(check_col & Rows.Count).End(xlUp).Row
        For Each Rng In Range(check_col & "1" & ":" & check_col & ColLastRow)
            If InStr(Rng.Value, vbLf) Then
                Rng.EntireRow.Copy
                Rng.EntireRow.Insert
                
                For i = 0 To UBound(colArray)
                    c = colArray(i)
                    
                    Set currentrng = Range(c & Rng.Row)
                    Set upperRng = currentrng.Offset(-1, 0)
                
                    upperRng.Value = Mid(currentrng.Value, 1, InStr(currentrng.Value, vbLf) - 1)
                    currentrng.Value = Mid(currentrng.Value, Len(upperRng.Value) + 2, Len(currentrng.Value))
                Next i
            End If
        Next

這就是我最終使用的。 將單元格分成單獨的行,以便我可以過濾。 然后我用下面的代碼重新組合。

Last_Row = Cells(Rows.Count, 1).End(xlUp).Row
            For i = Last_Row To 2 Step -1
            
                If Len(Cells(i, 1)) = 0 Then Rows(i).Delete
                    If Cells(i, 6) = Cells(i - 1, 6) Then
                        Cells(i - 1, 9) = Cells(i - 1, 9) & vbLf & Cells(i, 9)
                        Rows(i).Delete
                    End If
                
            Next i

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM