VBA复制并粘贴到另一个工作表

时间:2017-03-26 19:45:36

标签: excel vba excel-vba

我是编程的新手|我希望对以下内容有所帮助: 我需要一个代码,当它读入单元格(x,3)=" wall"然后是每一行,直到"点击"另一个元素,它说直到单元格(x + 1,3)<>"",它将该行的单元格A:E的值复制到另一个工作表中,如果它们满足特定条件。代码将以某种方式开始:

 If Cells(x, 3) = "wall" Then
Do Until Cells(x + 1, 2) <> ""
If Cells(x + 1, 4) <> "m2" Then
......
x=x+1
Loop

我希望在代码之间提供一些帮助。

1 个答案:

答案 0 :(得分:0)

尝试以下代码。确保它根据您的条件查看正确的单元格。

Option Explicit

Sub copyCells()

'Some variables to keep track of where we are on the sheets
Dim x As Integer
Dim lastRow As Integer
Dim i As Integer

Sheets("Sheet1").Select
Range("A1").Select

'I used 18 rows in my test set.  You'll want to change this to fit your data.
lastRow = 18
i = 1

For x = 1 To lastRow
    'Check for the first condition
     If Cells(x, 3) = "wall" Then
        'Move to the next row
        x = x + 1
        'Check that this is a row we want to copy
        'and we haven't reached the end of our data
        Do While Cells(x, 2) = "" And x < lastRow
            'Check the second condition
            If Cells(x, 4) <> "m2" Then
                'Copy and paste to the second sheet
                Range("A" & x & ":E" & x).Copy
                Sheets("Sheet2").Select
                Range("A" & i).Select
                ActiveSheet.Paste
                'Increment i to keep track of where we are on the second sheet
                i = i + 1
            End If
            'Go back to checking the first sheet
            x = x + 1
            Sheets("Sheet1").Select
            Range("A" & x).Select
        Loop
    End If
Next x

Application.CutCopyMode = False

End Sub