如何剪切select的行并粘贴到另一个工作簿并重复
我有一个列中有15000行的电子表格。 我想要创build一个脚本来为电子表格下的每个单元格着色代码。 我需要的是:
- 红色的前10个细胞
- 在BLUE中接下来的5个单元格
- GREEN中的下5个单元格
- 对于从A1降至A1500的所有单元重复此操作…
任何快速指针? 他们有一个pipe理员女孩这样做手动三天:/
– – -编辑
感谢球员的反应,非常有帮助!
但是 – 事实certificate,我误解了什么是全面的。 现在非常复杂,我意识到需要什么。
我们拥有的是:一个电子表格中的四个工作簿(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值等
任何帮助将不胜感激:)否则手动是..请保存我的理智
这是一个简单的macros来做到这一点
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
您可以使用条件格式:例如对于第一种颜色(假设您的数据从第二行开始)使用公式:
=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))
尝试使用此公式和条件格式为单元格着色:
=CHOOSE(INDEX(MOD(INT((ROW(RC)-1)/5),4),1,1)+1,1,1,2,3)
现在我使用R1C1
模式,而不是A1
模式,所以只需将RC
replace为格式化的单元格,然后将公式粘贴到其他单元格中即可。
在任何情况下,这个公式返回代表红色,蓝色和绿色的数字1,2或3。
然后,我格式化每个单元格红色,然后它只是应用两个条件格式的蓝色和绿色的情况:
=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
这是我的结果:
你实际上可以自动填充颜色。 您可以使用VBA或手动执行此操作。
VBA:
Sub Macro1() Range("A1:A20").Select Selection.AutoFill Destination:=Range("A1:A15000"), Type:=xlFillDefault End Sub
在一张白纸上做这个 – 你可以将这个颜色格式复制粘贴到你想要的任何单元格上。
如果您不想执行任何复制粘贴,也可以使用自动填充types的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