gpt4 book ai didi

excel - 根据列值删除行

转载 作者:行者123 更新时间:2023-12-04 20:39:16 26 4
gpt4 key购买 nike

我有一个我以前在其他项目中使用过的代码,它按预期工作。我现在正在使用这个具有不同值的代码。但任何包含 以外的值的行“工作组经理”没有被删除。我现在在 Excel 2013 工作(公司刚刚从 2007 年升级)。这会导致代码无法正常工作吗?我不知道 Excel 2007 和 Excel 2013 之间的区别是什么,因为它与 VBA 编码有关。

Sub Filter_WGM()

Dim PTASK_Template As Workbook
Set PTASK_Template = Workbooks("BCRS Unassigned Tasks Template.xlsm")
Dim WGMd As Worksheet
Set WGMd = PTASK_Template.Sheets("WGM")

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual


With WGMd
Dim LRMf As Long
For LRMf = Cells(Rows.Count, 3).End(xlUp).Row To 2 Step -1
If Cells(LRMf, 3).Value <> "WorkGroup Manager" Then
Rows(LRMf).Delete
End If
Next LRMf
End With

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

在我让它为这个工作表工作之后,我需要用不同的值重复这个代码来处理另外两个工作表。

最佳答案

试试这个,正如我所建议的那样,我使用了 with 语句,并重新调整了一些代码以便于阅读。

Sub Filter_WGM()

Dim PTASK_Template As Workbook
Dim WGMd As Worksheet
Dim LRMf As Long

Set PTASK_Template = Workbooks("BCRS Unassigned Tasks Template.xlsm")
Set WGMd = PTASK_Template.Sheets("WGM")

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

With WGMd
For LRMf = .Cells(.Rows.Count, 3).End(xlUp).Row To 2 Step -1
If .Cells(LRMf, 3).Value <> "WorkGroup Manager" Then
.Rows(LRMf).Delete
End If
Next LRMf
End With

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

End Sub

此外,如果您打算在各种工作表上使用它并寻找各种值,您可以尝试以下内容。然后,您可以启动此子程序并将相关参数传递给它。 (请注意此代码未经测试)。
Sub DeleteRowsFromSheet(TargetSheet As Worksheet, ValueColumn As Integer, Value As String)

Dim MyRow As Integer

With TargetSheet
For MyRow = 2 To .Cells(.Rows.Count,ValueColumn).End(XlUp).Row
If .Cells(MyRow,ValueColumn).Value <> Value Then
.Row(MyRow).EntireRow.Delete
MyRow = MyRow - 1
End If
Next
End With

End Sub

关于excel - 根据列值删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37122691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com