過濾掉作為 VBA 巨集一部分的數據

過濾掉作為 VBA 巨集一部分的數據

我正在嘗試建立一個可以自動產生報告的巨集。問題是,來源資料帶來了我們不需要的數據,並且報表本身根據整個表格進行了大量計算。基於該表進行了數百次計算,因此向報告中的每個公式添加包含參數將花費大量時間。

透過使用篩選器、過濾資料和刪除相關資料手動更新報告時,可以輕鬆解決此問題。不過,我正在嘗試自動執行該文件,因此我們只需單擊一個按鈕即可刷新它,而無需花費 20-30 分鐘。

因此,我想要做的(但到目前為止尚未解決)是讓 VBA 刪除其中列包含特定字串的每一行。

這是較大巨集的一部分,該巨集更新資料、使用文字到列更正日期列、刪除資料部分、計算 KPI 工作表中的公式,然後將其儲存為本週日期。

我可以自動執行所有其他步驟,因為我已經建立了幾個巨集來更新其他報告,但這讓我很困惑!我的 Google-Fu 也讓我失望了。

答案1

當變數定義的值時,此子程式將刪除工作表的整個行位於變數定義的欄位中專欄

Sub deleterows()
    Dim a As Application
    Dim wkb As Workbook
    Dim wks As Worksheet
    Dim DataRange As Range
    Set a = Application
    Set wkb = ThisWorkbook
    Set wks = wkb.ActiveSheet
    wks.Application.ScreenUpdating = False
    thecolumn = 2 'this have to be changed to the desired column
    thestring = "some text" ' this have to be changed too
    reviewing = True
    visitrow = 1
    While reviewing = True
        visitrow = visitrow + 1
        If wks.Cells(visitrow, 1) = "" Then
            reviewing = False
        End If
        celldata = wks.Cells(visitrow, thecolumn)
        If IsNumeric(celldata) = True Then
            celldata = Trim(Str(celldata))
        End If
        If celldata = thestring Then
            wks.Rows(visitrow).Delete
            visitrow = visitrow - 1
        End If
    Wend
   wks.Application.ScreenUpdating = True
   Message = MsgBox("Finished!", vbOKOnly)
End Sub

相關內容