VBA将行粘贴到不同的列中

时间:2017-10-27 15:18:15

标签: vba excel-vba excel

如何更改我的代码,以便在复制到sheet2时,行从C列开始?目前,它们被复制到A列的sheet2中。

Dim ws1 As Worksheet, ws2 As Worksheet
Dim firstRowWs1 As Long
Dim lastRowWs1 As Long
Dim lastRowWs2 As Long
Dim searchColumnWs1 As Integer
Dim i As Integer
Dim check As Variant
Dim strSearch As Variant
Set ws1 = Worksheets("sheet1")
Set ws2 = Worksheets("sheet2")

With ws2
lastRowWs1 = ws1.UsedRange.Rows.Count
lastRowWs2 = ws2.UsedRange.Rows.Count
firstRowWs1 = 1
searchColumnWs1 = 10
strSearch = Array("asdf", "fdsa")

For i = firstRowWs1 To lastRowWs1
    For Each check In strSearch
        If check = ws1.Cells(i, searchColumnWs1).Value Then
            ws1.Rows(i).Copy (ws2.Rows(lastRowWs2 + 1))
            lastRowWs2 = lastRowWs2 + 1
            ws1.Rows(i).Delete shift:=xlUp
            i = i - 1
            Exit For
        End If
    Next check
Next i
End With

1 个答案:

答案 0 :(得分:0)

你不能 - 如果你复制整行,你必须将它粘贴到整行(即从A开始),否则它不适合。您可以做的是复制少于整行

Application.intersect(ws1.Rows(i), ws1.usedrange).Copy ws2.cells(lastrowws2+1, 3)

或在例行程序结束时,只需在A处插入两列即可将所有内容推到右侧

 ws2.columns("A:B").insert xltoright
相关问题