Excel 将一行数据从一个工作表粘贴到另一个工作表n次
我需要将一行数据从一个工作表粘贴到另一个工作表n次。我想通过输入框输入nExcel 将一行数据从一个工作表粘贴到另一个工作表n次,excel,vba,Excel,Vba,我需要将一行数据从一个工作表粘贴到另一个工作表n次。我想通过输入框输入n 关于如何使用VBA实现这一点,有什么建议吗 这是一个裸体宏。注意:需要调整图纸名称 Sub test() Dim dataWS As Worksheet, copyToWS As Worksheet Dim copyRow&, noCopies&, copySheetLastRow&, i& Set dataWS = Sheets("Sheet1") Set copyToWS = Shee
关于如何使用VBA实现这一点,有什么建议吗 这是一个裸体宏。注意:需要调整图纸名称
Sub test()
Dim dataWS As Worksheet, copyToWS As Worksheet
Dim copyRow&, noCopies&, copySheetLastRow&, i&
Set dataWS = Sheets("Sheet1")
Set copyToWS = Sheets("Sheet2") ' Change these as required.
copySheetLastRow = copyToWS.Cells(copyToWS.Rows.Count, 1).End(xlUp).Row
If copySheetLastRow > 1 Then
copySheetLastRow = copySheetLastRow + 1
End If
copyRow = InputBox("What row would you like to copy?")
noCopies = InputBox("How many times do you want it copied?")
For i = 1 To noCopies
With dataWS
copyToWS.Rows(copySheetLastRow).Value = .Rows(copyRow).Value
End With
copySheetLastRow = copyToWS.Cells(copyToWS.Rows.Count, 1).End(xlUp).Row + 1
Next i
End Sub
它从数据WS中获取所选行,并将其放在“复制到”工作表的下一个可用行中
编辑:根据您的问题,此代码确保要复制到的工作表将数据放在下一个可用行上,即从第1行开始的下一个空行
copySheetLastRow = copyToWS.Cells(copyToWS.Rows.Count, 1).End(xlUp).Row
这将使用copyToWS工作表,并获取最后使用的行。copyToWS.Rows.Count统计工作表中的行数,然后查找下一个非空行。EndxlUp。这相当于从A列的最后一行开始,然后按CTRL+[向上箭头]
If copySheetLastRow > 1 Then
copySheetLastRow = copySheetLastRow + 1
End If
如果确定最后一行大于第1行,则向该行添加一行,使其变为+1。这是因为如果最后一行是第1行,则表示没有信息。在床单上还没有。但是,如果最后一行被确定为4,则表示第4行中有数据。我们在这个数字上加1,这样我们就不会覆盖该行中的数据。录制宏是一个很好的起点。这个站点实际上不适合像这样要求完整的代码;这只针对具体问题。谢谢。我只是想了解这个过程和我可以开始的地方。在这个网站上不允许这样的问题吗?您能告诉我您知道此类问题应该向哪里提问吗?@user5241675-查看如何提问。你越是遵守这一点,我们就越能提供帮助@布鲁斯韦恩-谢谢你,非常感谢。这很有效。你能解释一下这部分的功能吗?代码copySheetLastRow=copyToWS.CellscopyToWS.Rows.Count,1.EndxlUp.Row如果copySheetLastRow>1,那么copySheetLastRow=copySheetLastRow+1 EndIf@user5241675-我已经编辑了这篇文章,以包含该行的细分。如果我能进一步解释,请告诉我!另外,如果它能作为答案,你介意把这篇文章标记成这样吗?谢谢这是一个很好的解释。谢谢。已回答。@user5241675-很高兴能帮助您!要标记为答案,请单击我的帖子左侧的复选标记。谢谢我还有另一个问题。如果代码copySheetLastRow>1,那么copySheetLastRow=copySheetLastRow+1 End如果代码说最后一行在for循环的末尾递增,即在代码处如果copySheetLastRow>1,那么copySheetLastRow=copySheetLastRow+1 End如果代码,If语句会再次递增行号吗?假设copySheetLastRow为4,那么它将再次转到If语句,并将其递增为5,因为copySheetLastRow>1,或者copySheetLastRow将保持为4,直到下一个i递增发生?