与Excel相关
输入
我在B栏中有日期,并在表1的D栏中检查号码。 我在表2的D栏中有一个句子,这个句子将具有表1中D列的任何值。
要求: 必须在表2中的列D中搜索第一个校验码(列d表1),如果在任何句子中找到该值,则必须将表B(表1中的日期)粘贴在表2中的表H中。如果找到则在表1列H“Y”中标记,如果未找到则标记为“N”。
答案 0 :(得分:0)
首先我们将调暗变量
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 sheet1”栏中加上“Y”
sh.Cells(a.Row, "H") = "Y"
如果没有找到,那么我们想在H sheet1列中放置一个“N”
Else: sh.Cells(a.Row, "H") = "N"
end if
然后循环到D栏1中的下一个“a”
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