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

时间:2015-02-09 06:56:58

标签: excel excel-vba excel-formula vba

示例:

我的Sheet1看起来像这样:

enter image description here

在Sheet2中,我想要一个这样的输出(这里我希望得到所有的行' CAMERA'):

enter image description here

我很难将产品组合成产品Sheet2,你能帮助我使用哪种配方吗?

2 个答案:

答案 0 :(得分:2)

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

步骤1:执行Alt + F11以打开“Microsoft Visual Basic for Applications'

步骤2:按F7打开空白代码表

步骤3:将以下编码复制到表格上:

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以关闭视觉基础。

第5步:在电子表格中,转到开发人员标签,然后点击“宏”'按钮。

步骤6:选择刚刚创建的宏(称为FilterandCopy),然后单击“运行”。 (注意:弹出窗口会询问设备类型,输入CAMERA以获取相机项目)

答案 1 :(得分:0)

我喜欢你给出的解决方案, 然而,这是另一个可能对您有所帮助的想法:      *这假设你选择"手工"从过滤器中获取SINGLE值。

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