请保持谦虚,这是我从头开始的第一个代码,我只是在此定制了被盗的代码。该代码的目标是检索表中满足三个条件的所有记录,并将其粘贴到特定位置。这将用于使用我的下一个代码进行计算。我知道如果没有匹配的记录,我需要添加消息。我想先让这部分工作。
Sub ListRecords()
' Declare Variables
' Clear old results
' Find records that match criteria
Dim Part As String
Dim Hold As String
Dim Cut As Integer
Dim LRow As Integer
Dim i As Integer
Sheets("Multi Cut Lengths").Range("F21:H71").ClearContents
Part = Sheets("Multi Cut Lengths").Range("A2").Value
Hold = Sheets("Multi Cut Lengths").Range("A1000").Value
Cut = Sheets("Multi Cut Lengths").Range("B3").Value
Worksheets("FG Inv").Activate
LRow = Cells(Rows.count, 1).End(xlUp).Row
For i = 2 To LRow
If Cells(i, 1) = Part And Cells(i, 3) > Cut And Cells(i, 4) = Cut Then
Range(Cells(i, 1), Cells(i, 3)).Copy
Worksheets("Multi Cut Lengths").Activate
Sheets("Multi cut lengths").Range("F35").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
End If
Next i
End Sub
根据我定义的标准,它应该返回20多个记录。 (通过过滤确认)。我只看到第一张记录。
答案 0 :(得分:0)
这部分代码:
Sheets("Multi cut lengths").Range("F35").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
从本质上讲,它“告诉”宏进入单元格F35并一直向上移动(停在第一个空单元格或工作表的顶部(行1)。
也许这是问题所在?指定的输出范围错误?