根据下拉列表复制范围

Copy range based on dropdown

一个下拉列表用一个值填充 B2Sheet1。我需要在 Sheet2 中找到这个值,然后复制从该单元格开始的范围,向右 5 列 和向下 18 行 .此值复制范围始终粘贴到 I3:M20.

例如,如果在 A75 中找到下拉列表中的值,则应将范围 A75:E92 复制到 I3:M20

谢谢。

如果您希望它在值更改时自动发生,您需要使用@donPablo 在评论中提到的Sub Worksheet_Change。确认更改的单元格是感兴趣的单元格,然后从 Sheet2 上的 B2 中找到值。您可以使用 Resize 获取您感兴趣的更大区域,然后将其复制到您想要的位置。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Target.Address = "$B" Then
        Exit Sub
    End If
    Dim ToFind
    Dim Found
    ToFind = Sheets("Sheet1").Range("B2").Value
    Set Found = Sheets("Sheet2").Range("A1", "E300").Find(ToFind, LookIn:=xlValues)
    If Not Found Is Nothing Then
        Found.Resize(18, 5).Copy
        Sheets("Sheet2").Range("I3").PasteSpecial (xlPasteValues)
    End If
End Sub