值更改时添加值

时间:2015-09-23 16:32:42

标签: excel vba excel-vba

我有以下表格

value1 | value2
001    | car
001    | car1
002    | moto
002    | moto2
003    | ship

我想在" value1"时插入一个空行。像这样的变化

value1 | value2
001    | car
001    | car1
       |
002    | moto
002    | moto2
       |
003    | ship

为此,我使用此代码可以正常工作:

Sub blankRows()
Dim LR As Long, i As Long
LR = Range("E" & Rows.Count).End(xlUp).Row
For i = LR To 2 Step -1
    If Range("E" & i).Value <> Range("E" & i - 1).Value Then Rows(i).Insert
Next i
End Sub

我想要的不仅仅是添加一个空白行,而是添加到空白行的开头以插入10个星号。喜欢这个

    value1 | value2
    001    | car
    001    | car1
********** |
    002    | moto
    002    | moto2
********** |
    003    | ship
********** |

你可以改变我上面的代码,在它插入的空白行中添加10个星号吗?

2 个答案:

答案 0 :(得分:1)

Sub blankRows()
Dim LR As Long, i As Long
LR = Range("E" & Rows.Count).End(xlUp).Row
For i = LR To 2 Step -1
    If Range("E" & i).Value <> Range("E" & i - 1).Value Then
    Rows(i).Insert
    Cells(i, 1) = "**********"
    End If
Next i
End Sub

答案 1 :(得分:0)

VBA不是必需的,因为Subtotal会在稍微帮助下实现相同的效果,并提供自动分组,这可能会也可能不会被欣赏。

假设value1在A1中,请选择两列,DATA&gt;大纲 - 小计,在每次更改时:value1,使用函数:Count,添加小计到:value1仅检查,检查替换当前小计和下面的数据摘要),确定。过滤插入的列以选择文本过滤器,包含...,c,确定并在B1中:

**********  

向下复制以适应,删除ColumnA,如果需要,删除最后占用的行。