在 Excel 中,如何讓一個儲存格中具有特定文字的表格中的一行資料自動顯示在單獨工作表的表格中?

在 Excel 中,如何讓一個儲存格中具有特定文字的表格中的一行資料自動顯示在單獨工作表的表格中?

我每週都會將包含 8 列資料的報告下載到表格中。資料量每週按行變化(一周可能有 40 行,下一周可能有 100 行,但不超過 150 行)。數據標頭將保持不變。

我只需要能夠讓 B 列中出現“HOT: Must Cover”的行中的所有資料自動出現/解析在另一張紙上的相同表格中。我會以某種方式將 VLOOKUP 與 =IF 一起使用嗎?

表 1 中的表格範例:

在此輸入影像描述

答案1

您擁有的一個選項是使用Excel 中的篩選選項,然後在B 列上按字母順序對它們進行排序。工作表(因為它們將全部分組)一起排序)。

或者,您需要編寫一個巨集來讀取每行的 B 列,並在內容為「Hot: Must Cover」時複製該行。

沿著這些思路:

Dim i as Integer
Dim j as Integer

i = 0
j = 0

Do While Cells(i, 2).value != ""
    if Cells(i, 2).Value == "Hot: Must Cover" Then
        Worksheets("Sheet1").Range(Cells(j, 0), Cells(j, 7).Value = Worksheets("Sheet1").Range(Cells(i, 0), Cells(i, 7).Value
        j = j + 1
    End if
    i=i+1
loop

答案2

VLOOKUP我認為用(或任何其他查找)來完成此操作是很困難的。考慮這個 VBA 解決方案:

Sub test    
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim j As Integer

    Set ws1 = Worksheets(1)
    Set ws2 = Worksheets(2)
    j = 1

    For i = 2 To (ws1.Range("A1").ListObject.DataBodyRange.Count + 1)
        If ws1.Range("B" & i).Value = "HOT: Must Cover" Then
            ws1.Range("A" & i & ", G" & i).Copy
            ws2.Range("A" & j).PasteSpecial xlPasteValues
            j = j + 1
        End If
    Next i
End Sub

相關內容