使用VBA根据条件将范围从一张纸复制到另一张纸

时间:2018-07-26 19:18:30

标签: arrays excel vba excel-vba

我已经在excel中创建了选择器,该选择器将根据输入的需求填充最合适的产品,在另一个工作表中,我有一个列表,其中在A-C列中具有引用,而D-J列为空白。

我想做的是在选择器中在N12:N35范围内输入一个数量(注意一行中只有一个数量,其他所有行都为空白),然后按添加按钮,各列该行中的选择器的JP将复制到另一个工作表中的空白单元格DJ

我尝试了许多代码,但都因各种错误而无法成功。谁能帮忙吗?

选择器在下面,其中我要复制的列已隐藏 enter image description here

如果要在上方输入数量,我想将上方的J-P列粘贴至下方的D-J列。仅输入1个数量,其他所有数量均为空白。

enter image description here

    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

0 个答案:

没有答案