【发布时间】:2020-08-20 06:59:53
【问题描述】:
“Sheet2”上的 Col B 包含 370 行数据。 从“Sheet2”单元格 B1 开始,我想在“Sheet1”上的 Col B 中搜索匹配值(它可以位于“Sheet1”Col B 的前 300 行中的任何位置)。 如果找到匹配项,则从“Sheet1”复制整行并粘贴到“Sheet2”上的 Row1。然后,移动到“Sheet2”单元格 B2 并重复搜索,这次将整个行从“Sheet1”粘贴到“Sheet2”上的 Row2。继续遍历“Sheet2”上的整个数据列,在“Sheet1”上搜索每个单元格的值。如果搜索未返回匹配项,则不要将任何内容粘贴到“Sheet2”上的该行,然后继续搜索“Sheet2”上的下一个单元格。 (例如,如果 Sheet1 Col B 不包含 Sheet2 Cell B3 的匹配项,则 Sheet2 Row3 中不会粘贴任何内容。)
我找到了以下示例,它开始对我有所帮助,但它指定了搜索值,并且不会像我试图做的那样循环遍历整个值列。
Sub CopyYes()
Dim c As Range
Dim j As Integer
Dim Source As Worksheet
Dim Target As Worksheet
' Change worksheet designations as needed
Set Source = ActiveWorkbook.Worksheets("Sheet1")
Set Target = ActiveWorkbook.Worksheets("Sheet2")
J = 1 ' Start copying to row 1 in target sheet
For Each c In Source.Range("E1:E1000") ' Do 1000 rows
If c = "yes" Then
Source.Rows(c.Row).Copy Target.Rows(j)
j = j + 1
End If
Next c
End Sub
【问题讨论】:
-
使用
Range.Find
标签: excel vba copy-paste