代码需要对活动单元格下方的行进行分组

时间:2013-08-28 17:58:38

标签: excel-vba rows vba excel

在第一行有一个包含1000多行,文本模式的工作表,然后有3行空行。我需要将第B列第一行中的文本向下复制到接下来的3行。然后我需要将这3行指定为初始行的一组。我有以下代码工作前两行,但然后它停在第3行,我得到一个编译错误:语法错误。我知道从执行第3行开头的步骤中记录了初始宏,需要Rows,但似乎无法找到正确的语法告诉系统要分组的行是下一个3。 / p>

编辑: 添加了缺少的代码示例。

Selection.AutoFill Destination:=Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(3, 0)), Type:=xlFillDefault
Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(3, 0)).Select
Rows(ActiveCell.Row 1,ActiveCell.Row 3).Select
Range(ActiveCell.Offset(3, -1)).Activate
Selection.Rows.Group
Range(ActiveCell.Offset(4, 0)).Select

第二次编辑: 在记录的宏中添加了按键以完成对下3行的分组。从刚刚将第一行复制到其他3行开始,按键为:1向下,Shift / Space,Shift / 2向下,Alt / dgg。 宏:

Rows("1037:1039").Select
Range("A1039").Activate
Selection.Rows.Group

1 个答案:

答案 0 :(得分:0)

从“开发者”选项卡的“代码”部分激活“使用相对参考”录制宏时,我录制了一个工作模型来解决我的问题。该marco执行以下操作:   - 将活动单元格内容复制3行   - 选择整个3行   - 使这3行成为初始行的一组   - 转到下一个分组的下一个主要行

########### Recorded Macro的初始脚本############################
Selection.AutoFill Destination:=ActiveCell.Range("A1:A4"), Type:=xlFillDefault
ActiveCell.Range("A1:A4").Select
ActiveCell.Offset(1, 0).Rows("1:3").EntireRow.Select
ActiveCell.Offset(3, 0).Range("A1").Activate
Selection.Rows.Group
ActiveCell.Offset(1, 0).Range("A1").Select

在测试生成的宏时,我发现了一个通过消除第4行修复的问题。所以成功的宏代码如下所示:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     Selection.AutoFill Destination:= ActiveCell.Range(“A1:A4”),Type:= xlFillDefault
    ActiveCell.Range( “A1:A4”)选择
。     ActiveCell.Offset(1,0).Rows(“1:3”)。EntireRow.Select
    Selection.Rows.Group
    ActiveCell.Offset(3,1).Range(“A1”)。选择