合并excel中的单元格,具体取决于它的值

时间:2013-02-01 12:18:55

标签: excel vba excel-vba

如果单元格具有某个value ("vv"),我想自动合并单元格。 我找到的解决方案是每次更改时检查数组中的每个单元格,但是认为有可能在cell之后检查changed的值?

因此,如果我输入一个空白单元格"vv"(没有引号),我选择一个不同的单元格,我希望该单元格(其中包含vv)与其下方的单元格合并。 在我使用数组的解决方案中,每次更换单元格时都需要一秒钟,如果进行大量更改,则不是很整洁。 有帮助吗?

1 个答案:

答案 0 :(得分:4)

在工作表中尝试使用此代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = "vv" Then Target.Resize(2).Merge
End Sub

如果您想要阻止下面单元格中的任何内容,此代码将询问您是否应合并单元格,以防发现任何内容:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = "vv" Then 
        If Target.Offset(1).Value  "" Then
             If MsgBox("Do you want to overwrite the cell below (containing '" & _
                 Target.Offset(1) & "?", vbYesNo) = vbYes Then
                 Target.Resize(2).Merge
            End If
        Else
            Target.Resize(2).Merge
        End If
    End If
End Sub

注意:代码需要进入目标表,而不是新模块,因为它是一个事件过程:

code placement