我想编写一个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 回答
你过早地离开Sheet1:
更改"No Crtical Logs Found"消息的目的地
从
至
在为其分配值之前,无需选择单元格 .