与Excel相关
输入
我在工作表1的B列中有日期,在工作表1的D列中有支票号码。在工作表2的D列中有一个句子。此句子的值将为工作表1的D列中的任何值。
要求:必须在工作表2的D列中搜索第一个支票号码(工作表d列),如果在任何句子中都找到该值,则必须将B列(工作表1中的日期)粘贴在H列中工作表2.在工作表1的H列中也标记“ Y”(如果找到),并在“ N”中发现。
首先,我们将变量变暗
Dim Rws As Long, Rng As Range, a As Range
Dim Rws2 As Long, rng2 As Range, c As Range
Dim sh As Worksheet, ws As Worksheet
我们需要先设置工作表,然后再设置范围
Set sh = Sheets("Sheet1")
Set ws = Sheets("Sheet2")
设置sheet1的范围,这将确定columnD的最后一行并设置范围
With sh
Rws = .Cells(.Rows.Count, "D").End(xlUp).Row
Set Rng = .Range(.Cells(2, "D"), .Cells(Rws, "D"))
End With
这将设置sheet2的范围
With ws
Rws2 = .Cells(.Rows.Count, "D").End(xlUp).Row
Set rng2 = .Range(.Cells(2, "D"), .Cells(Rws2, "D"))
End With
现在我们将开始循环以查找支票号
For Each a In Rng.Cells
想要找到第一个支票号码
Set c = rng2.Find(what:=a, lookat:=xlPart)
如果找到,那么我们要将日期放置在H列中
If Not c Is Nothing Then
Cells(c.Row, "H") = a.Offset(0, -2)
并在H列1中放置一个“ Y”
sh.Cells(a.Row, "H") = "Y"
如果未找到,那么我们要在H列中放置一个“ N” sheet1
Else: sh.Cells(a.Row, "H") = "N"
end if
然后循环到D列中的下一个“ a” sheet1
Next a
一起看起来会像这样。
Sub Loop2()
Dim Rws As Long, Rng As Range, a As Range
Dim Rws2 As Long, rng2 As Range, c As Range
Dim sh As Worksheet, ws As Worksheet
Set sh = Sheets("Sheet1")
Set ws = Sheets("Sheet2")
With sh
Rws = .Cells(.Rows.Count, "D").End(xlUp).Row
Set Rng = .Range(.Cells(2, "D"), .Cells(Rws, "D"))
End With
With ws
Rws2 = .Cells(.Rows.Count, "D").End(xlUp).Row
Set rng2 = .Range(.Cells(2, "D"), .Cells(Rws2, "D"))
End With
For Each a In Rng.Cells
Set c = rng2.Find(what:=a, lookat:=xlPart)
If Not c Is Nothing Then
Cells(c.Row, "H") = a.Offset(0, -2)
sh.Cells(a.Row, "H") = "Y"
Else: sh.Cells(a.Row, "H") = "N"
End If
Next a
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句