Microsoft Excel – 如何将一个工作表中的行复制到由值过滤的另一个工作表中

例:

我有Sheet1,看起来像这样:

在这里输入图像描述

在Sheet2中,我需要一个像这样的输出(这里我想用“CAMERA”项来获取所有的行):

在这里输入图像说明

我很难把产品配方写到Sheet2上,你能帮我一下吗?

这个macros应该诀窍:

步骤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 

第四步:点击红色的xclosures视觉基本。

第5步:在电子表格中,转到“开发人员”选项卡,然后单击“macros”button。

第6步:select刚刚创build的macros(称为FilterandCopy),然后单击运行。 (注意:会popup一个询问设备的types,在CAMERA中input相机项目)

我喜欢你给的解决scheme,但是这里有另外一个想法可以帮助你:*这个假定你从filter中select了一个“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