宏 - 如果值满足条件复制粘贴到另一张纸
Posted
技术标签:
【中文标题】宏 - 如果值满足条件复制粘贴到另一张纸【英文标题】: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
,我相信这会让您开始了解如何仅将这些值放到另一张纸上。
(If you're curious about the downvotes)
【参考方案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
看看这有没有帮助?
【讨论】:
以上是关于宏 - 如果值满足条件复制粘贴到另一张纸的主要内容,如果未能解决你的问题,请参考以下文章