示例:
我的Sheet1看起来像这样:
在Sheet2中,我想要一个这样的输出(这里我希望得到所有的行' CAMERA'):
我很难将产品组合成产品Sheet2,你能帮助我使用哪种配方吗?
答案 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