我正在嘗試建立一個可以自動產生報告的巨集。問題是,來源資料帶來了我們不需要的數據,並且報表本身根據整個表格進行了大量計算。基於該表進行了數百次計算,因此向報告中的每個公式添加包含參數將花費大量時間。
透過使用篩選器、過濾資料和刪除相關資料手動更新報告時,可以輕鬆解決此問題。不過,我正在嘗試自動執行該文件,因此我們只需單擊一個按鈕即可刷新它,而無需花費 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