基于具有VBA的另一个单元的值合并单元

时间:2015-04-02 08:41:41

标签: excel vba excel-vba merge

我一直致力于一个项目,我正在努力让事情变得更顺畅:)

我有一个包含多个列的Excel工作表,如下所示,C列是主题的重要性(基于该行中输入的信息),D列是输入的信息是新信息还是关于前一(上)行的更新。洙:

如果我在D列第3行输入“update”;我希望它自动合并单元格C2和C3。

     C      D
1   LOW     new
2   HIGH    new
3          update
4   Low     new
5          update
6          update

我不知道如何编写VBA代码,但我大部分都能理解这些代码,足以采用我在互联网上找到的我想要实现的代码。我已经检查了很多网站以找到我需要的东西,但我没有运气,所以如果你能帮助我,我真的很感激:)

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的方法在当前工作表中添加此宏。

Private Sub Worksheet_Change(ByVal Target As Range)

IF Target.value = "Update" then
     Range("A" & Target.row - 1 & ":A" & Target.row).Merge
End If

End Sub

答案 1 :(得分:0)

试试这个:

Sub Merge_Priority()
Dim RgToMerge As String


For i = 1 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
    RgToMerge = ""
    If LCase(Cells(i, 4)) <> "update" Or (LCase(Cells(i + 1, 4)) <> "new" And Cells(i + 1, 4) <> "") Then
    Else
        RgToMerge = "$C$" & Cells(i, 3).End(xlUp).Row & ":$C$" & i
        With Range(RgToMerge)
            .Merge
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
        End With
    End If

Next i

End Sub

您知道如何在活动中添加宏吗?

转到Visual Studio,选择左侧的ThisWorkBook并创建一个宏:

Private Sub Worksheet_Change()

并粘贴上面的代码