[英]How to copy specific columns from one sheet and paste in another sheet in a different range at the first row?
I am a newbie to this vba/macro. 我是这个vba /宏的新手。 i need to copy specific columns and paste it in another worksheet.
我需要复制特定的列并将其粘贴到另一个工作表中。 Im using the code that being provided from previous thread.
我正在使用从上一个线程提供的代码。 however, i need the data to be pasted in 1st row.
但是,我需要将数据粘贴到第一行。 currently, the data pasted in 2nd row.
当前,数据粘贴在第二行。 below are the code:
下面是代码:
Sub copypaste()
Dim lastrow As Integer, erow As Integer, sheet1 As Worksheet, sheet2 As
Worksheet, icol As Long
Set sheet1 = Worksheets("Sheet1")
Set sheet2 = Worksheets("Sheet2")
lastrow = sheet1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 4 To lastrow
erow = sheet2.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
sheet2.Cells(erow, 2) = sheet1.Cells(i, 1)
sheet2.Cells(erow, 3) = sheet1.Cells(i, 2)
sheet2.Cells(erow, 7) = sheet1.Cells(i, 3)
sheet2.Cells(erow, 5) = sheet1.Cells(i, 5)
sheet2.Cells(erow, 4) = sheet1.Cells(i, 6)
sheet2.Cells(erow, 8) = sheet1.Cells(i, 11)
sheet2.Cells(erow, 9) = sheet1.Cells(i, 8)
sheet2.Cells(erow, 13).Value = sheet1.Cells(i, 9).Value
Next i
Worksheets("Sheet1").Columns().AutoFit
Cells(1, 1).Activate
End Sub
The header from sheet1 also is not required to be copied over. sheet1的标题也不需要复制。
Thanks. 谢谢。 Link from the previous thread.
从上一个线程链接。 Assistance was given by Tim Wilkinson
蒂姆·威尔金森(Tim Wilkinson)提供了协助
The above issue was solved yesterday by @sktneer. 昨天,@ sktneer解决了上述问题。 The data had successfully pasted in the 1st row.
数据已成功粘贴到第一行。
However, related to the same case, how can i copy the filtered data from sheet1? 但是,与同一情况相关,我如何从工作表1中复制已过滤的数据? I've put in the autofilter code to specify the criteria for the copypaste process but not sure whether i've done it correctly or not.
我已经放入自动过滤器代码来指定复制粘贴过程的条件,但是不确定我是否正确执行了该操作。
Below is the adjusted code: 以下是调整后的代码:
sub copypaste()
Dim lastrow As Integer, erow As Integer, sheet1 As Worksheet, sheet2 As
Worksheet, lrow As Long
Set sheet1 = Worksheets("Sheet1")
Set sheet2 = Worksheets("Sheet2")
strSearch = "LOCAL"
lastrow = sheet1.Cells(Rows.Count, 1).End(xlUp).Row
With sheet1
AutoFilterMode = False
lrow = sheet1.Range("L" & .Rows.Count).End(xlUp).Row
With .Range("L3:L" & lrow)
.AutoFilter Field:=1, Criteria1:="=*" & strSearch & "*"
For i = 4 To lastrow
If sheet2.Cells(1, 2) = "" Then
erow = 1
Else
erow = sheet2.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
End If
sheet2.Cells(erow, 2) = sheet1.Cells(i, 1)
sheet2.Cells(erow, 3) = sheet1.Cells(i, 2)
sheet2.Cells(erow, 7) = sheet1.Cells(i, 3)
sheet2.Cells(erow, 5) = sheet1.Cells(i, 5)
sheet2.Cells(erow, 4) = sheet1.Cells(i, 6)
sheet2.Cells(erow, 8) = sheet1.Cells(i, 11)
sheet2.Cells(erow, 9) = sheet1.Cells(i, 8)
sheet2.Cells(erow, 13).Value = sheet1.Cells(i, 9).Value
Next
End With
AutoFilterMode = False
End With
Worksheets("Sheet1").Columns().AutoFit
Cells(1, 1).Activate
End Sub
Thanking you guys in advance. 预先谢谢你们。
Maybe this... 也许这个...
For i = 4 To lastrow
If Sheet2.Cells(1, 2) = "" Then
erow = 1
Else
erow = Sheet2.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
End If
Sheet2.Cells(erow, 2) = Sheet1.Cells(i, 1)
Sheet2.Cells(erow, 3) = Sheet1.Cells(i, 2)
Sheet2.Cells(erow, 7) = Sheet1.Cells(i, 3)
Sheet2.Cells(erow, 5) = Sheet1.Cells(i, 5)
Sheet2.Cells(erow, 4) = Sheet1.Cells(i, 6)
Sheet2.Cells(erow, 8) = Sheet1.Cells(i, 11)
Sheet2.Cells(erow, 9) = Sheet1.Cells(i, 8)
Sheet2.Cells(erow, 13).Value = Sheet1.Cells(i, 9).Value
Next i
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.