作为 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

相关内容