我正在尝试根据工作表1的H列中指示的值将工作表1中的行复制到工作表2上 .
我找到了一个似乎有效的代码,但它更改了原始工作表中的数据,而不是将行复制到另一个工作表中,比如说“Sheet2” .
Sub CopyData()
'Updateby Extendoffice 20160922
Dim xRow As Long
Dim VInSertNum As Variant
xRow = 1
Application.ScreenUpdating = False
Do While (Cells(xRow, "A") <> "")
VInSertNum = Cells(xRow, "H")
If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
Range(Cells(xRow, "A"), Cells(xRow, "H")).Copy
Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "H")).Select
Selection.Insert Shift:=xlDown
xRow = xRow + VInSertNum - 1
End If
xRow = xRow + 1
Loop
Application.ScreenUpdating = False
End Sub
如何更改此代码,使其在原始提取工作表“Sheet1”中运行宏,并将行复制到“Sheet2”,如果H列中的值大于0?
Sheet1中的示例数据如下所示 . 容器中的值位于H列中,它确定要复制并复制到Sheet2中的行数 .
Supplier Dest Code Quantity Container
A US01 10001 1000 2
A US02 10002 500 4
B UK01 10001 0 0
C US01 10004 1300 1
Sheet2中的所需结果如下:
Supplier Dest Code Quantity Container
A US01 10001 1000 2
A US01 10001 1000 2
A US02 10002 500 4
A US02 10002 500 4
A US02 10002 500 4
A US02 10002 500 4
C US01 10004 1300 1
谢谢 .
1 回答
我知道这个问题很老但是没有答案,所以我认为可以提交一个 .
我做了一个新的宏,我认为它会更简单,更容易阅读,从而理解 . 如果您稍后需要更改,所有这些都可以让您更轻松地进行编辑 .
根据我的理解,您在D列到H列中的信息要复制x次;其中x是H列中的值 . 我假设您的工作表名为"Sheet1"和"Sheet2" . 我在下面提供了答案 .
如果有任何方法可以改善这个答案,请告诉我! :)