使用输入条件的搜索范围将值从一个 sheet 复制到另一个

Copying values from one sheet to another using a search range for criteria entered

我正在寻求帮助...下面是我试图实现的代码和一些图像。我创建了一个选择器,当您输入数量时。我希望它使用包含数量的行并将其带到下一个可用行的另一个 sheet。我的代码没有产生错误,但它也没有做任何事情。

我希望获取输入数量的行的范围 J:P,然后将其粘贴到另一个工作sheet 的 D 列的下一个空白行中,因为已经包含了条目在 A-C 中。这里有人可以帮忙吗?

    Sub Add()

    Dim searchRange As Range
    Dim foundCell As Range
    Dim mysearch As Integer
    Dim iRow As Long
    Dim ws1, ws2 As Worksheet

    Set ws1 = Worksheets("Output")
    Set ws2 = Worksheets("Selector")
    iRow = Sheets("Output").Range("D2").End(xlUp) + 1

    mysearch = Sheets("Selector").Range("N10").Value

    With Sheets("Selector")
        Set searchRange = Sheets("Selector").Range("N12:N35") ', .Range("A" & .Rows.Count).End(xlUp))
    End With

    Set foundCell = searchRange.Find(what:=mysearch, Lookat:=xlWhole, MatchCase:=False, SearchFormat:=False)
    If Not foundCell Is Nothing Then
        ws1.Cells(iRow, 4).Value = foundCell.Offset(0, -4).Value       
'and so on
    End If

    End Sub

这是选择器

这是我要粘贴值的地方(以不同的顺序)。

试试下面的方法,我只是稍微修改了你的代码,我相信它应该能按预期工作:

Sub Add()
    Dim foundCell As Range
    Dim mysearch As Integer
    Dim iRow As Long, Last As Long
    Dim ws1 As Worksheet, ws2 As Worksheet

    Set ws1 = Worksheets("Output")
    Set ws2 = Worksheets("Selector")

    iRow = ws1.Cells(ws1.Rows.Count, "D").End(xlUp).Row + 1
    Last = ws2.Cells(ws2.Rows.Count, "N").End(xlUp).Row

    mysearch = ws2.Range("N10").Value

    Set foundCell = ws2.Range("N12:N" & Last).Find(what:=mysearch, Lookat:=xlWhole)
    If Not foundCell Is Nothing Then
        ws1.Cells(iRow, 4).Value = foundCell.Offset(0, -4).Value
    End If

End Sub