Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何识别A列Sheet1中与B列中的单词匹配的单词,然后将这些行复制到Sheet2? 我将1到30多个不同的单词粘贴到A列,第1页(每个单元格一个单词) 代码必须在A列和B列之间循环(以查看A列中的单词是否与B列中的单词匹配)。 B列填充了数千个不同的单词(每个单元格一个单词) 当B列中的单词与A列中的单词匹配时,B列中匹配单词的行将复制到Sheet2中_Excel_Vba - Fatal编程技术网

Excel 如何识别A列Sheet1中与B列中的单词匹配的单词,然后将这些行复制到Sheet2? 我将1到30多个不同的单词粘贴到A列,第1页(每个单元格一个单词) 代码必须在A列和B列之间循环(以查看A列中的单词是否与B列中的单词匹配)。 B列填充了数千个不同的单词(每个单元格一个单词) 当B列中的单词与A列中的单词匹配时,B列中匹配单词的行将复制到Sheet2中

Excel 如何识别A列Sheet1中与B列中的单词匹配的单词,然后将这些行复制到Sheet2? 我将1到30多个不同的单词粘贴到A列,第1页(每个单元格一个单词) 代码必须在A列和B列之间循环(以查看A列中的单词是否与B列中的单词匹配)。 B列填充了数千个不同的单词(每个单元格一个单词) 当B列中的单词与A列中的单词匹配时,B列中匹配单词的行将复制到Sheet2中,excel,vba,Excel,Vba,Sheet2的标题与Sheet1相同(可能有25个以上不同的列标题),因此复制到Sheet2的行将对齐 每次我都需要用A列中的不同单词重复这个过程 Value=“NAME”为一个词工作: Private子命令按钮1\u单击() a=工作表(“Sheet1”)。单元格(Rows.Count,1)。结束(xlUp)。行 对于I=5到a 如果工作表(“Sheet1”).单元格(I,1).Value=“NAME”,则 工作表(“表1”).行(I).副本 工作表(“表2”)。激活 b=工作表(“Sheet

Sheet2的标题与Sheet1相同(可能有25个以上不同的列标题),因此复制到Sheet2的行将对齐

每次我都需要用A列中的不同单词重复这个过程

Value=“NAME”
为一个词工作:


Private子命令按钮1\u单击()
a=工作表(“Sheet1”)。单元格(Rows.Count,1)。结束(xlUp)。行
对于I=5到a
如果工作表(“Sheet1”).单元格(I,1).Value=“NAME”,则
工作表(“表1”).行(I).副本
工作表(“表2”)。激活
b=工作表(“Sheet2”).单元格(Rows.Count,1).结束(xlUp).行
工作表(“表2”)。单元格(b+1,1)。选择
活动表。粘贴
工作表(“表1”)。激活
如果结束
下一个
Application.CutCopyMode=False
此工作簿。工作表(“Sheet1”)。单元格(1,1)。选择
端接头

代码将循环通过Sheet1 ColumnA获取搜索词,然后循环通过Sheet1 ColumnB测试匹配,如果匹配,将行复制到Sheet2

Private Sub CommandButton1_Click()
Dim a As Integer, b As Integer, i As Integer, j As Integer
With Worksheets("Sheet1")
    .Activate
    .Cells(1, 1).Select
    a = .Cells(Rows.Count, 1).End(xlUp).Row
    b = .Cells(Rows.Count, 2).End(xlUp).Row
    For i = 5 To a
        For j = 5 To b
            If .Cells(j, 2).Value = .Cells(i, 1).Value Then 
                .Rows(j).Copy Worksheets("Sheet2").Rows(Worksheets("Sheet2").Cells(Rows.Count, 2).End(xlUp).Row + 1)
            End If
        Next
    Next
End With
End Sub
此版本的代码不会在工作表之间进行物理“跳跃”

代码将只找到完全匹配的项。如果您需要在字符串中查找字符串,请使用LIKE和通配符或InStr()函数,例如:
If.Cells(j,2).Value LIKE“*”和.Cells(i,1).Value&“*”然后


请注意,我的测试显示此代码区分大小写:Apple。

一个单词的代码在哪里?请将其包括在您的问题中。Private Sub CommandButton1_Click()a=工作表(“Sheet1”).单元格(Rows.Count,1)。End(xlUp)。行为I=5到a如果工作表(“Sheet1”)。单元格(I,1)。Value=“NAME”然后是工作表(“Sheet1”)。行(I)。复制工作表(“Sheet2”)。激活b=工作表(“Sheet2”)。单元格(Rows.Count,1)。End(xlUp).行工作表(“Sheet2”).单元格(b+1,1).选择活动工作表。粘贴工作表(“Sheet1”)。如果Next Application.CutCopyMode=False,则激活结束此工作簿。工作表(“Sheet1”).单元格(1,1)。选择End SubSorry,当我将代码粘贴到“注释”部分时,格式将丢失。当我用Value=“NAME”替换不同的单词时,这一点起到了作用。我还尝试使用Value=“NameA”或NameB”或“NameC”“-但它不起作用。这30多个单词的来源是什么?工作表上的一列?June7:谢谢你的反馈。但也许我没有正确描述事情,因为你对某些代码行的修改(仅删除)不起作用。A列中的30多个单词(或数千个独特单词)可能是任何东西(例如,人名、服务类型或产品类型等。对于每一个单词,剩余的B、C、D等列包含每一行的唯一信息。可能有1000多行。如果希望每次都能更改代码以有选择地搜索和复制,请按照修订后的代码仅粘贴这些行。June7:哇,俗话说您是一位学者,也是一位绅士。我试图修改先前的代码或自己寻找解决方案,就像盲人引导盲人一样。您提供了一个如此迅速的解决方案。非常感谢您对您的知识和时间如此慷慨。谢谢!