【问题标题】:Macro - IF value meets condition copy paste to another sheet宏 - 如果值满足条件复制粘贴到另一张纸
【发布时间】:2017-05-22 22:41:38
【问题描述】:

我可以就这个宏获得一些帮助吗?我想浏览“Sheet1”中表格 P 列中的所有值。这是一张桌子的照片:

First Table

如果值为

Second Table

如有任何帮助,我们将不胜感激

【问题讨论】:

  • 你是先尝试自己做的吗?另外,它必须通过VBA完成吗?因为这也可以用 Excel 公式完成。
  • 查看Index/Match,我相信这会让您开始了解如何仅将这些值放到另一张纸上。

标签: vba excel macros


【解决方案1】:

在您希望数据进入的工作表(表 2)和标题下方(表 2)中,将单元格设置为与表 1 中所需的单元格相同。按“=”然后单击到带有表 1 的工作表,然后单击第一行的单元格。对名称、标识符、扇区、速率重复此操作... 完成第一行后,突出显示第二行上的单元格,然后单击并按住黑线的右下角并向下拖动到相同的行数来自表 1。

如果您想将值粘贴到那里,则突出显示范围并复制并右键单击粘贴 > 特殊粘贴(单击特殊粘贴)并选择值。

然后您可以根据说明表按您需要小于1的列对数据进行排序,并删除大于1的行。

【讨论】:

    【解决方案2】:

    我不知道您要复制哪些列,因为它们没有在您拥有的第一个表格图像中命名,所以我只是做了一个宏,您可以根据需要自行调整范围以及您需要的工作表。

    下面的代码循环遍历您的数据,检查Column P 中每一行的数据是否小于 1,并将数据放入一个变量中,您可以在其中复制并粘贴到您需要该数据的任何位置,

    代码,

    Sub d()
       Dim i As Long
       Dim lastrow As Long
       Dim rng As Range
    
       lastrow = Cells(Rows.Count, 1).End(xlUp).Row
       For i = 2 To lastrow
          If Range("P" & i).Value < 1 Then
             If Not rng Is Nothing Then
                 Set rng = Union(rng, Range("B" & i), Range("C" & i), Range("D" & i), Range("Q" & i), Range("H" & i), Range("I" & i), Range("P" & i))
             Else
                 Set rng = Union(Range("B" & i), Range("C" & i), Range("D" & i), Range("Q" & i), Range("H" & i), Range("I" & i), Range("P" & i))
             End If
          End If
       Next
       rng.Copy Sheets("explanation").Range("A2")
    End Sub
    

    看看这有没有帮助?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      相关资源
      最近更新 更多