Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于另一个单元格的值与VBA合并单元格_Vba_Excel_Merge - Fatal编程技术网

基于另一个单元格的值与VBA合并单元格

基于另一个单元格的值与VBA合并单元格,vba,excel,merge,Vba,Excel,Merge,我一直在做一个项目,我正在努力让事情变得更顺利:) 我有一个excel表格,有几列,正如您在下面看到的,C列是主题的重要性(基于该行中键入的信息),D列是键入的信息是新信息还是关于上一行(上一行)的更新。苏: 如果我在D列第3行键入“更新”;我希望它能自动合并C2和C3单元 C D 1 LOW new 2 HIGH new 3 update 4 Low new 5 update 6 upd

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

我有一个excel表格,有几列,正如您在下面看到的,C列是主题的重要性(基于该行中键入的信息),D列是键入的信息是新信息还是关于上一行(上一行)的更新。苏:

如果我在D列第3行键入“更新”;我希望它能自动合并C2和C3单元

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

我不知道如何编写VBA代码,但我基本上能理解这些代码,足以将我在互联网上找到的东西应用到我想要实现的目标上。我查看了很多网站,找到了我需要的东西,但我运气不好,因此如果您能帮助我,我将不胜感激:)

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

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
试试这个:

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

然后将代码粘贴到上方

,这样您只会合并两个单元格,但工作表中的每一个更改都会启动该代码。非常感谢您的回复!我为这个负担感到抱歉,但我想我可以编辑你发布的代码,并将其调整到我的文件中,但实际上我做不到。列包含高值和低值在C上,新列和更新列是D。您能帮助我根据此信息更改代码吗?更改完成!;)如果一切正常,请验证答案以关闭主题!一切正常,但我不知道如何使用这段代码,当它将从顶部(C1)合并到最后一行的单元格与“update”值合并,并将所有列合并到一个单元格中。是否需要对其进行编码,以便单元格合并到上一个(向上)“新”值?我的错,我忘了更改RgToMerge定义中的列号,请现在尝试一下
Private Sub Worksheet_Change()