gpt4 book ai didi

excel - 如果特定单元格 (DataBodyRange) 包含特定子字符串,则用于删除 Excel 表格 (ListObject) 中的行的 VBA 代码

转载 作者:行者123 更新时间:2023-12-02 01:27:38 24 4
gpt4 key购买 nike

  1. 摘要。我试图循环遍历一个表,如果在指定列中找到特定的子字符串,则删除每一行。我特别卡在查找目标文本的代码行上,我知道这是不正确的,但找不到我想要实现的目标的正确语法:If tbl.DataBodyRange(rw, 10)。查找(myString)

  2. 我搜索了许多网站和 YouTube 视频,其中有一些可以找到准确的值,但我找不到像我要解决的问题那样的内容。

  3. 我的代码:

Sub removeTax()
Dim tbl As ListObject
Set tbl = ThisWorkbook.Sheets("Master").ListObjects("tblMaster")
Dim myString As String
myString = "Tax"

Dim rw

For rw = tbl.DataBodyRange.Rows.Count To 1 Step -1
If tbl.DataBodyRange(rw, 10).Find(myString) Then
tbl.ListRows.Delete
End If
Next

End Sub

非常感谢您提供的任何帮助。

最佳答案

删除 Excel 表格的条件行 (ListObject)

使用

Sub RemoveTax()

Const CritColumn As Long = 10
Const CritString As String = "*Tax*" ' contains

Dim tbl As ListObject
Set tbl = ThisWorkbook.Worksheets("Master").ListObjects("tblMaster")

DeleteTableCriteriaRows tbl, CritColumn, CritString

End Sub

方法

Sub DeleteTableCriteriaRows( _
ByVal Table As ListObject, _
ByVal CriteriaColumn As String, _
ByVal CriteriaString As String)

With Table

If .ShowAutoFilter Then
If .AutoFilter.FilterMode Then .AutoFilter.ShowAllData
Else
.ShowAutoFilter = True
End If

.Range.AutoFilter CriteriaColumn, CriteriaString

Dim rg As Range
On Error Resume Next
Set rg = .DataBodyRange.SpecialCells(xlCellTypeVisible)
On Error GoTo 0

.AutoFilter.ShowAllData

If Not rg Is Nothing Then rg.Delete xlShiftUp

End With

End Sub

关于excel - 如果特定单元格 (DataBodyRange) 包含特定子字符串,则用于删除 Excel 表格 (ListObject) 中的行的 VBA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74091927/

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