我正在尝试创建一个可以自动生成报告的宏。问题是,源数据带来了我们不需要的数据,而报告本身会根据整个表格进行大量计算。基于表格需要进行数百次计算,因此向报告中的每个公式添加包含参数将花费大量时间。
通过使用过滤器、过滤数据并删除相关数据,手动更新报告时可以轻松解决这个问题。不过,我正在尝试自动化文件,这样我们只需单击一个按钮并刷新它,而不必花费 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