我希望在一个脚本中完成以下步骤:
我认为对于一个新手来说应该很简单,但是我找不到任何具有类似流程的地方,而且我也没有运气来修补代码。
更新:
对不起,我应该已经输入了。
我对找到的新脚本进行了一些改进,因此该部分可以提供输入框,搜索表标题并选择找到的单元格,因此我需要合并到此步骤中,以对找到的单元格。这是我真正挣扎的部分。如果我记录这些步骤,则无论搜索什么内容,它始终会过滤同一列,因此我认为我需要一种方法来回读找到的单元格详细信息并选择该列以过滤出空白。这有意义吗?:-
Sub Find_First()
Dim FindString As String
Dim Rng As Range
FindString = Application.InputBox("Enter a Search value")
If Trim(FindString) <> "" Then
With Sheets("ACM").Range("B2:DA2") ' This is the table headers
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Application.Goto Rng, True
Else
MsgBox "Nothing found"
End If
End With
End If
结束子
我现在使用下面的代码运行它,如果取消InputBox,我现在得到的唯一错误是1004(WorksheetFunction类)错误:-
子Find_First() Dim i1作为整数 昏暗的FindString作为字符串
Dim Rng As Range
Dim rngData As Range
Set rngData = Application.Range("A2").CurrentRegion
FindString = Application.InputBox("Enter a Search value")
If Trim(FindString) <> "" Then
With Sheets("ACM").Range("B2:DA2") ' This is the table headers
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Application.Goto Rng, True
Else
MsgBox "Nothing found"
End If
End With
End If
i1 = Application.WorksheetFunction.Match(FindString, Application.Range("A2:CZ2"), 0)
Rng.AutoFilter Field:=i1, Criteria1:="<>"
结束子
谢谢
答案 0 :(得分:0)
看起来您真的需要自动过滤器:
我在类似的情况下也这样做:
Dim i1 as Interger
Dim rngData as Range
Set rngData = ws.Range("A1").CurrentRegion
使用Match查找与FindString匹配的列号
i1 = Application.WorksheetFunction.Match(FindString, ws.Range("A1:CZ1"), 0)
rngData.AutoFilter Field:=i1, Criteria1:="<>"