首页 文章

Excel VBA编程将特定行从sheet1复制到sheet2特定单元格

提问于
浏览
0

我想编写一个vba代码,它将从sheet1的特定列中搜索数据并复制这些行并将其粘贴到sheet2 . 我写了代码,但发现了一个问题 . 这是下面的代码 .

Sheets("Sheet1").Select
    Range("D1").Select
    Dim mycode As Worksheet
    Set mycode = ThisWorkbook.Worksheets("Sheet2")
    Dim i As Long
    For i = 2 To Cells(Rows.Count, "D").End(xlUp).Row
        If Cells(i, 4).Value = "high" Then
            Range(Cells(i, 1), Cells(i, 8)).Copy Destination:=mycode.Range("A" & mycode.Cells(Rows.Count, "A").End(xlUp).Row + 1)
            ElseIf Cells(i, 4).Value <> "high" Then
            Sheets("Sheet2").Select
            Range("A2").Value = "No Crtical Logs Found"
            End If
        Next i
    End Sub

从sheet1列D(number4)我搜索匹配“high”的数据并将这些行复制粘贴到sheet2 . 如果列D中没有任何“高”,那么“无需操作”将写在sheet2上的单元格A2中 . 但问题是当“高”值不存在时它工作正常但是当D列表1中存在“高”值时,则所有时间“无需动作”值将出现在sheet2上的单元格A2上 . 请帮我纠正这个 .

No Crtical Logs Found   4/11/2016   Critical    high        192.168.1.1 This is the sample excel sheet  Action Required

此致,Pinaki

2 回答

  • 0

    你过早地离开Sheet1:

    Sub fhskdfh()
        Sheets("Sheet1").Select
        Range("D1").Select
        Dim mycode As Worksheet
        Set mycode = ThisWorkbook.Worksheets("Sheet2")
        Dim i As Long
        For i = 2 To Cells(Rows.Count, "D").End(xlUp).Row
            MsgBox i & vbCrLf & Cells(i, 4).Value
            If Cells(i, 4).Value = "high" Then
                Range(Cells(i, 1), Cells(i, 8)).Copy Destination:=mycode.Range("A" & mycode.Cells(Rows.Count, "A").End(xlUp).Row + 1)
            End If
        Next i
    End Sub
    
  • 0

    更改"No Crtical Logs Found"消息的目的地

    Sheets("Sheet2").Select Range("A2").Value
    

    Sheets("Sheet2").Range("A2").Value
    

    在为其分配值之前,无需选择单元格 .

相关问题