Vba 仅将相邻单元格合并到范围内的合并单元格

Vba 仅将相邻单元格合并到范围内的合并单元格,vba,excel,Vba,Excel,我正在尝试将相邻行中的单元格合并到已合并的单元格中。如果D列中的相邻单元格被合并,我想合并C列中的相邻单元格。并非所有单元格都合并到列D中。下面的代码为我提供了在MsgBox中使用变量时的正确行号,但是,当我将变量添加到要合并的范围时,每一行都会合并。我认为这一定很简单,但我只能确定是什么导致范围中的每一行被合并。我通常不会在合并任何东西时出错,但我需要在电子表格中保留这些合并的单元格。我们将非常感谢您的帮助 Sub FindMerge() Dim cell As Range Dim Lrow

我正在尝试将相邻行中的单元格合并到已合并的单元格中。如果D列中的相邻单元格被合并,我想合并C列中的相邻单元格。并非所有单元格都合并到列D中。下面的代码为我提供了在MsgBox中使用变量时的正确行号,但是,当我将变量添加到要合并的范围时,每一行都会合并。我认为这一定很简单,但我只能确定是什么导致范围中的每一行被合并。我通常不会在合并任何东西时出错,但我需要在电子表格中保留这些合并的单元格。我们将非常感谢您的帮助

Sub FindMerge()

Dim cell As Range
Dim Lrow As Long

Application.ScreenUpdating = False      'Turn off screen updating. Code runs faster without screen flicker
Application.DisplayAlerts = False       'stops Windows Alerts from poping up

'loops through range to find merged cells
'For Each cell In ActiveSheet.UsedRange    'commented out to try static range below.
For Each cell In Range("D1:D81")

    If cell.MergeCells Then

        If cell.Address = cell.MergeArea.Cells(1, 1).Address Then

'           Msgbox "Row: " & cell.row        'displays correct row number where merged cell is located

           Lrow = cell.row

          Range("C2:O" & Lrow).Merge True     'Unintentionally merges every row

        End If

    End If

Next cell

Application.ScreenUpdating = True       'Turns screen updating back on
Application.DisplayAlerts = True        'Turns Windows Alerts back on

End Sub

执行以下操作将合并从第2行开始的所有行:

范围(“C2:O”和Lrow)。合并

您最可能想要的是:

Range("C1:O1").Offset(Lrow - 1).Merge

执行以下操作将合并从第2行开始的所有行:

范围(“C2:O”和Lrow)。合并

您最可能想要的是:

Range("C1:O1").Offset(Lrow - 1).Merge

解决方法:
Range(“C”&Lrow&“:D”&Lrow)。Merge True
我刚发现这也有效。是的,我一开始就有,但我选择了一个“更容易键入”:D。谢谢你的帮助。解决方法:
Range(“C”&Lrow&“:D”&Lrow)。Merge True
这也有效,我刚发现。是的,我一开始有,但我选择了一个“更容易打字”:D.谢谢你的帮助。