Microsoft Excel - 如何将行从一个 sheet 复制到另一个 sheet 按值过滤的行

Microsoft Excel - how do I copy rows from one sheet to another sheet filtered by a value

示例:

我的 Sheet1 看起来像这样:

在 Sheet2 中,我想要这样的输出(这里我想获取包含项目 'CAMERA' 的所有行):

我很难为产品Sheet2编写公式,你能帮我用什么公式吗?

这个宏应该可以解决问题:

第 1 步:按 Alt+F11 打开 'Microsoft Visual Basic for Applications'

第 2 步:按 F7 打开空白代码 sheet

第 3 步:将以下代码复制到 sheet:

Sub FilterandCopy()
Dim Equipment As String

Equipment = InputBox("Which piece of equipment?")

    With ActiveSheet.Range("A:D")
         .AutoFilter Field:=1, Criteria1:="" & Equipment & ""
    End With

ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Copy _
    Destination:=Worksheets("Sheet2").Range("A2")

Sheets("Sheet2").Range("A1").Value = "" & Equipment & ""

End Sub

第 4 步:点击红色 x 关闭 Visual Basic。

第 5 步:在您的传播sheet 中,转到开发人员选项卡,然后单击 'Macros' 按钮。

第 6 步:Select 刚刚创建的宏(称为 FilterandCopy)并单击 运行。 (注意:会弹出一个询问设备类型的窗口,输入 CAMERA 以获取相机项目)

我喜欢你得到的解决方案, 然而,这是另一个可能对您有帮助的想法: * 这假设您从过滤器中选择了 "by hand" 一个单一值。

Public Sub CopySheet()
' Clear prev data
Sheet2.Rows.ClearContents
Sheet2.Rows.Delete

' Copy filterd data
Sheet1.Activate
Sheet1.UsedRange.Select
Selection.Copy

' Paste the filterd data
Sheet2.Activate
Sheet2.Range("A2").Select
ActiveSheet.Paste

' Copy the filtered "word" to sheet2, for example- "Camera"
Sheet1.Range("A2").Copy
Sheet2.Range("A1").Select
ActiveSheet.Paste

' Increase the size of the word above.
Sheet2.Range("A1").Font.Size = Sheet2.Range("A1").Font.Size + 5
End Sub