如何剪切选择的行并粘贴到另一个工作簿&重复

时间:2014-03-12 21:26:28

标签: excel vba excel-vba

我在一列中有一个包含15000行的电子表格。我想创建一个脚本来对电子表格中下降的每个单元格进行颜色编码。我需要的是:

  • RED中的前10个细胞
  • 接下来的5个BLUE细胞
  • 接下来的5个绿色细胞
  • 对于从A1下降到A1500 ......
  • 的所有单元格重复此操作

有什么快速指示吗?他们有一个管理女孩手动执行这三天:/

----- EDIT

谢谢各位回复,非常有帮助!

但是 - 事实证明我误解了所有内容的全部规模。现在很复杂,我意识到需要什么。

我们拥有的是:一个电子表格中的四个工作簿(第1a层,第1b层,第1c层,第1层)

脚本需要:

  • 剪切第1层中的前10个单元格并粘贴到sheet1列A;
  • 剪切第2层中的前5个单元并粘贴到sheet1列A中;
  • 剪切第3层中的前5个单元格并粘贴到sheet1列A中;

  • 对每个工作簿中的所有单元格按降序重复 - 因此最终结果将在sheet1列A中具有10-5-5 10-5-5 10-5-5值等

    < / LI>

任何帮助将不胜感激:)否则手动它是..请保存我的理智

4 个答案:

答案 0 :(得分:1)

这是一个简单的宏来做到这一点

Sub colorRBGRow()

   For X = 0 To 14980 step 20
    Range("A" & X + 1 & ":A" & X + 10).Interior.ColorIndex = 3
    Range("A" & X + 11 & ":A" & X + 15).Interior.ColorIndex = 5
    Range("A" & X + 16 & ":A" & X + 20).Interior.ColorIndex = 4

    Next X
End Sub

答案 1 :(得分:0)

您可以使用条件格式:例如,对于第一种颜色(假设您的数据从第2行开始),请使用以下公式:

=AND(MOD(ROW()-1,20)>0,MOD(ROW()-1,20)<11) 

下一个颜色:

=AND(MOD(ROW()-1,20)>10,MOD(ROW()-1,20)<16)

最后一个比较棘手:

=OR(MOD(ROW()-1,20)=0,AND(MOD(ROW()-1,20)>15,MOD(ROW()-1,20)<20))

答案 2 :(得分:0)

您实际上可以自动填充颜色。您可以使用VBA或手动执行此操作。

VBA:

Sub Macro1()
    Range("A1:A20").Select
    Selection.AutoFill Destination:=Range("A1:A15000"), Type:=xlFillDefault
End Sub

在空白纸上执行此操作 - 您可以将此颜色格式复制粘贴到所需的任何单元格上。

如果您不想进行任何复制粘贴,则可以使用自动填充类型的xlFillFormats,但它也会覆盖任何其他(非颜色相关)格式:

Sub Macro2()
    Range("A1:A10").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Range("A11:A15").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 12611584
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Range("A16:A20").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 5287936
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Range("A1:A20").Select
    Selection.AutoFill Destination:=Range("A1:A109"), Type:=xlFillFormats
End Sub

答案 3 :(得分:0)

尝试使用此公式和条件格式设置为单元格着色:

=CHOOSE(INDEX(MOD(INT((ROW(RC)-1)/5),4),1,1)+1,1,1,2,3)

现在我使用的是R1C1模式,而不是A1模式,因此只需将RC替换为您要格式化的单元格,然后将公式粘贴到其他单元格中。

在任何情况下,此公式都会返回数字1,2或3,表示颜色为RED,BLUE和GREEN。

然后我将每个单元格格式化为RED,然后它只是为BLUE和GREEN应用两种条件格式的情况:

=CHOOSE(INDEX(MOD(INT((ROW(RC)-1)/5),4),1,1)+1,1,1,2,3)=2

=CHOOSE(INDEX(MOD(INT((ROW(RC)-1)/5),4),1,1)+1,1,1,2,3)=3

这是我的结果:

results