繁体   English   中英

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

[英]How to check a table range and paste selected values to a new worksheet in VBA?

我正在尝试检查表1中从63到69的所有行,如果列D的值是“ ATTIVO”且列“ F”的值> = 130,我想将G列的值粘贴到另一个从A3细胞。 如果条件为False,我想传递到下一行并对所有行进行相同的检查,如果条件为True,则应对并粘贴。

n = 63; LastRow3 = 69。

表格1:

在此处输入图片说明

表2:

在此处输入图片说明

Sub Macroarea1()
    Dim ws As Worksheet
    Dim LastRow As Long
    Dim LastRow1 As Long, LastRow3 As Long
    Dim i, n, x 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

    For x = n To LastRow3
        On Error Resume Next
        If Sheets("Report KIT").Range("D" & x) = "ATTIVO" And Cells(x, 6) >= 130 Then _
        Sheets("Report KIT").Range("G" & x).Copy
        Sheets("KIT").Range("A3").PasteSpecial xlPasteValues
        'Else
        x = x + 1
        'End If
    Next x

End Sub

例如对于第一个表的输入,我想有第二个表作为输出。

不幸的是,VBA给我一个错误(其他条件不正常)。 我想我以错误的方式构建了所有的For循环。 有人可以帮忙吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM