大佬教程收集整理的这篇文章主要介绍了查找列,然后过滤,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的标题从 A3 开始,我正在尝试使用此代码查找“团队经理”列,然后过滤登录名。
这是我的代码,但它无法正常工作。
Sub Filternames()
Dim col As String,cfind As Range
col = "Team Manager"
With ActiveSheet.Select
With .Range("A3",.Cells(1,.Columns.Count).End(xlToleft))
Set cfind = .Find(what:=col,LookIn:=xlValues,lookat:=xlWhole)
If Not cfind Is nothing Then
.autoFilter FIEld:=cfind.Column,Criteria1:="login123" '
End If
End With
.autoFilterMode = False
End With
End Sub
这是一个有趣的小问题。请尝试以下代码,基于所有标题都在第 3 行,在名为 Sheet1
的工作表上 - 更改这些以适应。
Option Explicit
Sub FilterNames()
Dim ws As Worksheet
Dim LastRow As Long,col As Long
Const login = "login123"
Const header = "T*M*"
Set ws = Sheets("Sheet1")
col = Application.WorksheetFunction.Match(header,ws.Range("3:3"),0)
LastRow = ws.Cells(Rows.Count,col).End(xlUp).Row
With ws.Range(ws.Cells(3,col),ws.Cells(LastRow,col))
.AutoFilter 1,login
End With
End Sub
,
你的错误在这一行:
With .Range("A3",.Cells(1,.Columns.Count).End(xlToLeft))
您要查找已过滤标题中的最后一列,它位于第 3 行,因此必须是:
With .Range("A3",.Cells(3,.Columns.Count).End(xlToLeft))
另外,尽量避免使用 ActiveSheet
和 Select
。
修改后的代码
Option Explicit
Sub FilterNames()
Dim col As String,cfind As Range
Dim Sht As Worksheet
Set Sht = ThisWorkbook.Worksheets("Sheet1") ' <-- modify "Sheet1" to your sheet's name
col = "Team Manager"
With Sht
With .Range("A3",.Columns.Count).End(xlToLeft))
Set cfind = .Find(what:=col,LookIn:=xlValues,lookat:=xlWhole)
If Not cfind Is Nothing Then
.AutoFilter Field:=cfind.Column,Criteria1:="login123" '
End If
End With
.AutoFilterMode = False
End With
End Sub
以上是大佬教程为你收集整理的查找列,然后过滤全部内容,希望文章能够帮你解决查找列,然后过滤所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。