Excel 查找字符串,查找下一个…找到的字符串位于搜索的末尾,而不是开头
我正在使用“查找下一个字符串”并在找到该字符串时复制/粘贴相邻单元格。我需要在开始时找到第一个事件,它现在在最后,所以我需要在之后对它进行排序。有没有办法更正下面的脚本,使其在开头有第一个找到的地址Excel 查找字符串,查找下一个…找到的字符串位于搜索的末尾,而不是开头,excel,vba,Excel,Vba,我正在使用“查找下一个字符串”并在找到该字符串时复制/粘贴相邻单元格。我需要在开始时找到第一个事件,它现在在最后,所以我需要在之后对它进行排序。有没有办法更正下面的脚本,使其在开头有第一个找到的地址 子测试() 变暗rng1、rng2、rng3作为范围 像细绳一样模糊的条纹 像绳子一样跨着 StrIn=“某物” 与工作表(1)一起使用 设置rng1=.Find(StrIn、xlValues、xlPart、xlNext) 如果不是,那么rng1什么都不是 strAdd=rng1.地址 设置rng2
子测试()
变暗rng1、rng2、rng3作为范围
像细绳一样模糊的条纹
像绳子一样跨着
StrIn=“某物”
与工作表(1)一起使用
设置rng1=.Find(StrIn、xlValues、xlPart、xlNext)
如果不是,那么rng1什么都不是
strAdd=rng1.地址
设置rng2=rng1
做
设置rng1=.FindNext(rng1)
设置rng2=Union(rng2、rng1)
非rng1时循环为Nothing,rng1.Address为空
如果结束
以
对于rng2中的每个rng3
调试.打印rng3.地址
下一个
端接头
只需交换构建工会的顺序
只需交换您构建
联盟的顺序
从最后一个单元格开始搜索 例如:
从最后一个单元格开始搜索 例如:
好吧,我用罗恩·罗森菲尔德鼓舞人心的回答解决了这个问题。我更改了SearchDirection:=xlPrevious,并保持原样:)
好的,我用罗恩·罗森菲尔德鼓舞人心的回答解决了这个问题。我更改了SearchDirection:=xlPrevious,并保持原样:)
FYI:您仅将
rng3
声明为范围
rng1
和rng2
是未分配的,因此默认为变量
类型变量。在vbathanks Urderboy中,这是一个非常常见的“抓住机会时刻”,但它也不起作用。现在我已经按降序排序了……至少是连续排序,但仍然不是我想要的结果。我想按升序排列。仅供参考:您只声明了rng3
作为范围rng1
和rng2
是未分配的,因此默认为变量
类型变量。在vbathanks Urderboy中,这是一个非常常见的“抓住机会时刻”,但它也不起作用。现在我已经按降序排序了……至少是连续排序,但仍然不是我想要的结果。我想按升序排列。
Sub test()
Dim rng1, rng2, rng3 As Range
Dim StrIn As String
Dim strAdd As String
StrIn = "something"
With Worksheets(1).UsedRange
Set rng1 = .Find(StrIn, , xlValues, xlPart, xlNext)
If Not rng1 Is Nothing Then
strAdd = rng1.Address
Set rng2 = rng1
Do
Set rng1 = .FindNext(rng1)
Set rng2 = Union(rng2, rng1)
Loop While Not rng1 Is Nothing And rng1.Address <> strAdd
End If
End With
For Each rng3 In rng2
Debug.Print rng3.Address
Next
End Sub
Set rng2 = Union(rng1, rng2)
With Worksheets(1).UsedRange
Set lastCell = .Cells(.Row - 1 + .Rows.Count, .Column - 1 + .Columns.Count)
Set rng1 = .Find(StrIn, lastCell, xlValues, xlPart, xlNext)
…
Set rng1 = .Find(what:=StrIn, LookIn:=xlValues, LookAt:=xlPart, SearchDirection:=xlPrevious)
Set rng2 = Union(rng2, rng1)