如何在VBA中检查表格范围并将选定值粘贴到新工作表?
我试图检查表1中63到69之间的所有行,如果D列的值为“ATTIVO”,而F列的值>=130, 我想将G列值粘贴到另一个工作表中,从A3单元格开始。 如果条件为False,我希望传递到下一行,并对所有行执行相同的检查,如果条件为True,则进行复制和粘贴 n=63;LastRow3=69 表1: 表2: 例如,对于第一个表输入,我希望有第二个表作为输出 不幸的是,VBA给了我一个错误,说明Else条件不正常。 我想我用错误的方式构建了所有的For循环。如何在VBA中检查表格范围并将选定值粘贴到新工作表?,vba,excel,Vba,Excel,我试图检查表1中63到69之间的所有行,如果D列的值为“ATTIVO”,而F列的值>=130, 我想将G列值粘贴到另一个工作表中,从A3单元格开始。 如果条件为False,我希望传递到下一行,并对所有行执行相同的检查,如果条件为True,则进行复制和粘贴 n=63;LastRow3=69 表1: 表2: 例如,对于第一个表输入,我希望有第二个表作为输出 不幸的是,VBA给了我一个错误,说明Else条件不正常。 我想我用错误的方式构建了所有的For循环。 有人能帮忙吗?我建议不要在下一步使用错误恢
有人能帮忙吗?我建议不要在下一步使用错误恢复,除非您确切知道代码发生了什么!!代码给出了什么错误?请删除If结尾的连续字符“\u1”。。。然后行并取消对Else的注释,如果lines@Vincent在这种情况下,如果我删除u并取消注释Else,如果我得到一个编译错误则结束:没有ife的Else不应该发生。您是在评论之前还是之后删除了uu?如果。。然后还有一个没有尽头的,谢谢,它几乎满足了我的需要。对于字符串,唯一的问题是:If.Cellsx,4=ATTIVO和.Cellsx,6>=130,那么它会给出一个错误:运行时错误“13”:类型不匹配,可能是什么?您可能需要通过Value属性访问数据?如果.Cellsx,4.Value2=ATTIVO和.Cellsx,6.Value2>=130,则尝试复制960680/90值并传递到字符串If.Cellsx,4.Value2=ATTIVO和.Cellsx,6.Value2>=130时,不幸的是,复制960680/90值时也会给出相同的错误,然后宏停止给出错误
Sub Macroarea1()
Dim ws As Worksheet
Dim LastRow As Long
Dim LastRow1 As Long, LastRow3 As Long
Dim i, n, x As Integer, y As Integer
Set ws = ActiveWorkbook.Sheets("Report KIT")
n = Sheets("Migrazioni").Range("N" & 7).Value
LastRow3 = Sheets("Report KIT").Range("G" & Sheets("Report KIT").Rows.Count).End(xlUp).Row
y = 3
For x = n To LastRow3
With Sheets("Report KIT")
If (.Cells(x, 4).Value2 = "ATTIVO") And (.Cells(x, 6).Value2 >= 130) Then
.Cells(x, 7).Copy
Sheets("KIT").Cells(y, 1).PasteSpecial xlPasteValues
y = y + 1
End if
x = x + 1
End With
Next x
End Sub
Sub Macroarea1()
Dim ws As Worksheet
Dim LastRow As Long
Dim LastRow1 As Long, LastRow3 As Long
Dim i, n, x As Integer, y As Integer
Set ws = ActiveWorkbook.Sheets("Report KIT")
n = Sheets("Migrazioni").Range("N" & 7).Value
LastRow3 = Sheets("Report KIT").Range("G" & Sheets("Report KIT").Rows.Count).End(xlUp).Row
y = 3
For x = n To LastRow3
With Sheets("Report KIT")
If (.Cells(x, 4).Value2 = "ATTIVO") And (.Cells(x, 6).Value2 >= 130) Then
.Cells(x, 7).Copy
Sheets("KIT").Cells(y, 1).PasteSpecial xlPasteValues
y = y + 1
End if
x = x + 1
End With
Next x
End Sub