根据下拉列表复制范围
Copy range based on dropdown
一个下拉列表用一个值填充 B2
个 Sheet1
。我需要在 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
一个下拉列表用一个值填充 B2
个 Sheet1
。我需要在 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