提问人:Sidvi 提问时间:12/4/2017 最后编辑:braXSidvi 更新时间:12/4/2017 访问量:66
在特定工作表中搜索文本字符串
Searching for a string of text in a specific worksheet
问:
我试图让excel搜索特定工作表中特定列中的文本字符串,该文本字符串不是活动工作表。VBA给了我一个错误,说我不能使用这种选择方法。所以我的问题是,你有什么建议以另一种方式去做吗?
Worksheets("Parts for renovation").Columns("Q:Q").Select
Set cell = Selection.Find(What:="Total transfer price", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If cell Is Nothing Then
Exit Sub
Else
Worksheets("Internal").Cells(29, 4) = Worksheets("Parts for Renovation").ActiveCell.Offset(0, 4)
End If
答:
2赞
Rory
12/4/2017
#1
无需在此处选择任何内容:
With Worksheets("Parts for renovation").Columns("Q:Q")
Set cell = .Find(What:="Total transfer price", After:=.Cells(1), LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If cell Is Nothing Then
Exit Sub
Else
Worksheets("Internal").Cells(29, 4) = Cell.Offset(0, 4)
End If
End With
评论
2赞
Shai Rado
12/4/2017
你打字太快了,你忘记了End With
;)
0赞
Rory
12/4/2017
@ShaiRado 谢谢!
1赞
Vityata
12/4/2017
#2
您的错误来了,因为您在非活动工作表上选择了一个范围。这是您通常应该避免选择的原因之一。
但是,如果你想让你的代码工作(这是非常不可取的),你可以考虑在选择范围之前选择工作表:
Worksheets("Parts for renovation").Select
Columns("Q:Q").Select
对于可取的部分,尽量避免使用“选择” - 如何避免在Excel VBA中使用选择
评论