gpt4 book ai didi

excel - VBA:如何使用表格标题引用列,以便我可以在单元格引用中使用该列

转载 作者:行者123 更新时间:2023-12-04 19:05:46 29 4
gpt4 key购买 nike

所以基本上我有一个代码,如果它们有两列满足某些条件,则旨在查找和删除行。但是,这些列在表中的位置通常是可变的,因此我需要使用它们的表头名称来引用这两列。我有一种使用列号来查找和删除这些行的方法,但是将其调整为列名并没有以同样的方式工作。如何调整我的代码以使其正常工作?我什至可以使用 FIND 函数吗?
提前致谢!

代码:

 1 Sub try()
2
3 ThisWorkbook.Sheets("report").Activate
4 Last1 = Cells(Rows.Count, "A").End(xlUp).Row
5 For p = Last1 To 1 Step -1
6 If (Cells(p, "Table1[type]").Text) = "active" And (Cells(p, "Table1[data]")) <> "" Then
7 Cells(p, "A").EntireRow.Delete
8 End If
9 Next p
10 End Sub

最佳答案

试试这个:

Sub try()
Dim Last1 As Long
Dim colType As Integer, colData As Integer

With ThisWorkbook.Sheets("report")
Last1 = .Cells(.Rows.Count, "A").End(xlUp).Row
colType = .Range("Table1[type]").Column
colData = .Range("Table1[data]").Column
For p = Last1 To 1 Step -1
If .Cells(p, colType) = "active" And .Cells(p, colData) <> "" Then
.Cells(p, "A").EntireRow.Delete
End If
Next p
End With
End Sub

顺便说一句,如果你的表有很多行,下一个代码会更有效:
Sub test2()
Dim rng As Range
Dim i As Long

With ThisWorkbook.Sheets("report").ListObjects("Table1")
.Range.AutoFilter
.Range.AutoFilter Field:=.ListColumns("type").Index, _
Criteria1:="=active"
.Range.AutoFilter Field:=.ListColumns("data").Index, _
Criteria1:="<>"
.Range.Offset(1).EntireRow.Delete
.Range.AutoFilter
End With
End Sub

关于excel - VBA:如何使用表格标题引用列,以便我可以在单元格引用中使用该列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21612518/

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