Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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 匹配其他工作表中的值并将数据复制到当前工作表_Excel_Vba - Fatal编程技术网

Excel 匹配其他工作表中的值并将数据复制到当前工作表

Excel 匹配其他工作表中的值并将数据复制到当前工作表,excel,vba,Excel,Vba,我有两张工作表。当在Sheet2的第2列中输入一个值时,我需要在Sheet1的C列中找到该值,然后从与Sheet2中的第3列匹配的同一行复制另一个值。到目前为止,我有以下代码: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Set Sheet1 = Worksheets("Sheet2") Set Sheet2 = Worksheets("Sheet1") If Target.Column = 2

我有两张工作表。当在
Sheet2
的第2列中输入一个值时,我需要在
Sheet1
的C列中找到该值,然后从与
Sheet2
中的第3列匹配的同一行复制另一个值。到目前为止,我有以下代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set Sheet1 = Worksheets("Sheet2")
    Set Sheet2 = Worksheets("Sheet1")
    If Target.Column = 2 Then
        rowNumber = Sheet1.Range("C:C").Find(What:=Target.Value, LookIn:=xlValues).Row
        If Not rowNumber Is Nothing Then
            Cells(rowNumber, 3).Value = Sheet1.Range(rowNumber, 1).Value
        End If
    End If
End Sub  
但是,当我使用此代码时,不会发生任何事情。我做错了什么?

这看起来不对

Set Sheet1 = Worksheets("Sheet2")
Set Sheet2 = Worksheets("Sheet1")
如果没有匹配项,则无法从“无”范围中获取行号

rowNumber = Sheet1.Range("C:C").Find(What:=Target.Value, LookIn:=xlValues).Row    
要更新的行可能是
Target.row
而不是
rowNumber
范围(行编号,1)
应为
单元格(行编号,1)

试一试

Private子工作表\u selection更改(ByVal目标作为范围)
如果是Target.Column 2,则退出Sub
将wb标注为工作簿,将表1标注为工作表,将表2标注为工作表
变暗rng作为范围,行数作为长度
设置wb=ThisWorkbook
设置工作表1=wb.工作表(“工作表1”)
设置工作表2=wb.工作表(“工作表2”)
设置rng=Sheet1.范围(“C:C”).查找(_
什么:=Target.Value_
LookIn:=xlValues_
注视:=xlother)
如果不是,那么rng什么都不是
rowNumber=rng.Row
Sheet2.单元格(Target.Row,3).Value=Sheet1.单元格(rowNumber,1).Value
如果结束
端接头

Hi。在我将代码粘贴到此处后,工作表命名不匹配。我不想使用原始图纸名称。我使用了这段代码,但它找不到值。我想这是因为我正在搜索的列合并了行。有什么解决方案可以克服这个问题吗?当我说“合并”时,它意味着,例如,将第5、6、7行合并为第5行。我可以确认,当这些行合并时,它不起作用。如果我使用了一个不在组合行中的值,它将成功地找到该值。@Incep您的意思是sheet1上的C列合并了单元格,因此C5:C7只是C5。这应该不是问题。列A中有行合并了吗?给我一个它找不到的值的例子,以及应该找到它的单元格范围。
Cells(rowNumber, 3).Value = Sheet1.Range(rowNumber, 1).Value