我试图制作一个代码,用于检查D列(例如780101)中名为All的主表单中的数字,如果符合条件,则复制整行并插入(不粘贴)到具有标准名称的另一张纸(例如780101),从第6行开始。 我所拥有的代码并不像我想要的那样工作。它不会复制符合条件的所有行,有时会插入空行。
{{1}}
我刚刚开始学习VBA,所以如果可能的话,表单的名称将是单元格值的标准(代码只针对一张表 - 780101,但有20个不同名称的床单。)
答案 0 :(得分:1)
如果不查看示例数据以及可能导致您遇到的问题的原因而提出建议很困难,但您可以对现有代码进行重复操作。
Sub Insert()
Dim dc As Range
With Sheets("All")
For Each dc In Intersect(.Range("D:D"), .UsedRange)
If dc.Value2 = 780101 Then
dc.Resize(2, 1).EntireRow.Copy
Sheets("780101").Rows(6).Insert Shift:=xlDown
End If
Next
End With
End Sub
从上到下运行的性质意味着结果将被颠倒。您可能希望考虑从下到上运行主循环以维持订单。