我是使用VBA的新手,并不完全了解如何使用范围和偏移函数。
这是我想要完成的事情。我有一个工作表“Sheet1”,其产品和定价信息在第4行从“A”到“H”列开始。列“D”是输入的数量。我正在尝试编写一个宏,以便任何行在“D”列中都有一个数字,然后插入该行的单元格“A”到“D”到“Sheet4”开始于“B49”。在“B49”之前和之后都有包含信息的行,我不想覆盖。
以下是我必须复制单元格的代码:
Sub Copy_And_Paste()
'
' Copy_And_Paste Macro
'
Application.ScreenUpdating = False
LastRow = Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
For i = 4 To LastRow
If Cells(i, 4) > 0 Then
Range(Cells(i, 1), Cells(i, 4)).Select
Selection.Copy
Sheets("Sheet4").Select
Range("B49").Select
ActiveSheet.Paste
End If
Next i
Application.ScreenUpdating = True
End Sub
现在它只会粘贴第一行,并在“D”列中粘贴一个数字。
答案 0 :(得分:0)
这是未经测试的:
Sub Copy_And_Paste()
Application.ScreenUpdating = False
With Worksheets("Sheet1")
LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
For i = 4 To LastRow
If .Cells(i, 4) > 0 Then
Sheets("Sheet4").Rows(49).Insert
.Range(.Cells(i, 1), .Cells(i, 4)).Copy Sheets("Sheet4").Range("B49")
End If
Next i
End With
Application.ScreenUpdating = True
End Sub
答案 1 :(得分:0)
通过取出LastRow
语句并将For i
语句更改为
For i =10000 To 4 Step -1