Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VBA中检查表格范围并将选定值粘贴到新工作表?_Vba_Excel - Fatal编程技术网

如何在VBA中检查表格范围并将选定值粘贴到新工作表?

如何在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循环。 有人能帮忙吗?我建议不要在下一步使用错误恢

我试图检查表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