Excel VBA“;“最后一行”;粘贴在彼此的顶部?
我这里有两本工作手册,我已经将我正在处理的每个工作表命名为:Excel VBA“;“最后一行”;粘贴在彼此的顶部?,excel,vba,Excel,Vba,我这里有两本工作手册,我已经将我正在处理的每个工作表命名为:wsINPUTS和wsFILLS。仅当特定单元格中的值大于0时,我才尝试将值从wsFILLS复制到wsINPUTS。我想复制到wsINPUTS上,从A2开始,然后直接在先前粘贴的值下面粘贴任何其他值 现在,我的代码正在复制数据并将其粘贴到INPUTS工作表的A2中,而不是直接粘贴在其下方。救命啊 With wsINPUTS LastRow = .Cells(Rows.Count, "A").End(xlUp).Row L
wsINPUTS
和wsFILLS
。仅当特定单元格中的值大于0时,我才尝试将值从wsFILLS
复制到wsINPUTS
。我想复制到wsINPUTS
上,从A2
开始,然后直接在先前粘贴的值下面粘贴任何其他值
现在,我的代码正在复制数据并将其粘贴到INPUTS
工作表的A2
中,而不是直接粘贴在其下方。救命啊
With wsINPUTS
LastRow = .Cells(Rows.Count, "A").End(xlUp).Row
LastRow = LastRow + 1
End With
If wsFILLS.Range("C8") > 0 Then wsFILLS.Range("B4:C9").Copy (wsINPUTS.Range("A" & LastRow))
If wsFILLS.Range("C16").Value > 0 Then wsFILLS.Range("B11:C16").Copy (wsINPUTS.Range("A" & LastRow))
If wsFILLS.Range("C23").Value > 0 Then wsFILLS.Range("B18:C23").Copy (wsINPUTS.Range("A" & LastRow))
由于您直接从不同的点粘贴数据,这会自然地更改每个副本后的最后一行,因此您必须在代码中对此进行说明 试试下面的方法
If wsFILLS.Range("C8") > 0 Then wsFILLS.Range("B4:C9").Copy wsINPUTS.Range("A" & wsInputs.Rows.Count).End(xlUp).Offset(1)
If wsFILLS.Range("C16").Value > 0 Then wsFILLS.Range("B11:C16").Copy wsINPUTS.Range("A" & wsInputs.Rows.Count).End(xlUp).Offset(1)
If wsFILLS.Range("C23").Value > 0 Then wsFILLS.Range("B18:C23").Copy wsINPUTS.Range("A" & & wsInputs.Rows.Count).End(xlUp).Offset(1)
将您编写的内容转换为更紧凑的形式,在每次需要时重新计算lastrow变量
If wsFILLS.Range("C8") > 0 Then wsFILLS.Range("B4:C9").Copy (wsINPUTS.Range("A" & wsINPUTS.Cells(Rows.Count, "A").End(xlUp).Row +1))
If wsFILLS.Range("C16").Value > 0 Then wsFILLS.Range("B11:C16").Copy (wsINPUTS.Range("A" & wsINPUTS.Cells(Rows.Count, "A").End(xlUp).Row +1))
If wsFILLS.Range("C23").Value > 0 Then wsFILLS.Range("B18:C23").Copy (wsINPUTS.Range("A" & wsINPUTS.Cells(Rows.Count, "A").End(xlUp).Row +1))
您是否询问如何在每次复制后更新
LastRow
?您需要在每次使用最后一行之前放置LastRow=.Cells(Rows.Count,“A”).End(xlUp)。Row+1
,以继续获取新的最后一行