复制和粘贴行和列取决于单元格值

时间:2013-11-26 10:51:27

标签: excel vba copy range copy-paste

您好我需要一些代码的帮助,基本上我有一个工作簿,其中包含大量数据,产品附件列在这些列旁边的行中,所有单元格中都有空白字段的产品,基本上,这一点是当用户在任何这些单元格中键入“x”时,表格就可以被过滤。

我已经制作了一个摘要表,我希望它能够查看这些特定的列,例如列EN,如果它包含“x”,它将复制相应的行,即A,B,C,D并将其粘贴到这个摘要表一个接一个地复制,并从x上面的行中复制产品

e.g

Column E has an x in E4,5,10,15,53

我希望它复制

ABCD4
ABCD5
ABCD10
ABCD15
ABCD53

以及产品名称,例如位于每列第一个空白框正上方的“甜瓜”,可以说E4是第一个空白,因此E3将是产品名称。

将其粘贴在一张又一行的“摘要表”中。

我知道这真的令人困惑,但我希望你能提供帮助:)

代码我有: 我现在有了这个代码,我几乎就在我想要的地方,我需要帮助就行了

    Range("A5").Select

它给了我一个错误,但除非我选择这个单元格,否则它会随机粘贴在工作表上

 Private Sub CommandButton9_Click()
 Range("A7:D7").Select
 Range(Selection, Selection.End(xlDown)).Select ' Go to last line

 ' Add a filter behavior
 Selection.AutoFilter Field:=5, Criteria1:="<>"

 Range("A7:D7").Select
 Range(Selection, Selection.End(xlDown)).Select

 Selection.Copy

 ' Paste data where you want
 Sheets ("Summary Sheet")
 Range("A5").Select
 ActiveSheet.Paste
 End Sub

1 个答案:

答案 0 :(得分:0)

这个想法可能是

  1. 选择您的数据集

  2. 应用过滤器以隔离x为过滤值的行 柱

  3. 选择数据并执行复制/粘贴操作

  4. 建议的代码示例(应根据您的电子表格进行调整)

         ' Select your range of data - maybe 
         Range("A1:E1").Select 
         Range(Selection, Selection.End(xlDown)).Select ' Go to last line
    
         ' Add a filter behavior
         Selection.AutoFilter Field:=5, Criteria1:="<>"
    
         Range("A1:E1").Select 
         Range(Selection, Selection.End(xlDown)).Select
    
         Selection.Copy
    
         ' Paste data where you want
         Sheets("Feuil2").Select
         Range("A1").PasteSpecial Paste:=xlPasteValues