如何在Excel中自动合并上方或左侧的空单元格
合并是Excel中最复杂的过程之一。如果我们合并单元格不正确,则可能会丢失数据并无法恢复。我们可以使用本文中提到的流程更加谨慎地进行操作,该流程仅考虑空单元格。本教程将帮助您了解如何在Excel中自动合并上方或左侧的空单元格。将多个单元格合并在一起称为 合并。
自动合并空白单元格以上
在此处,我们将插入一个VBA模块,然后运行它以完成我们的任务。让我们看一个简单的流程,了解如何使用vba代码自动合并Excel中的空白单元格以上。
步骤1
考虑一个Excel表格,其数据与下图所示相似。
要打开VBA应用程序,请右键单击工作表名称,然后选择“查看代码”,然后单击插入并选择模块,然后在下面的图像中如所示输入程序1。
示例1
Sub MergeCells()
'Update By Nirmal
Dim xRg As Range
Dim xCell As Range
Dim xAddress As String
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select a range:", "Choose the Range", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
For Each xCell In xRg
If xCell.Value = "" Then
Range(xCell, xCell.Offset(-1, 0)).Merge
End If
Next
End Sub
步骤2
现在单击F5以运行VBA代码,然后在弹出窗口中选择要合并的范围,然后单击确定。
我们的最终输出将如下图所示。
如果您只想允许合并其中一个单元格,请在VBA应用程序中使用Program 2。
示例2
子 mergeblankswithabove()
'由Nirmal更新
Dim I As Long
Dim xRow As Long
Dim xRg As Range
Dim xCell As Range
Dim xAddress As String
On Error Resume Next
xAddress = 应用程序.活动窗口.选定区域.地址
Set xRg = 应用程序.输入框("选择范围(单列):" , "选择区域", xAddress, , , , 8)
If xRg Is Nothing Then Exit Sub
If xRg.Columns.Count > 1 Then
MsgBox "仅限单列", , "已选择范围"
Exit Sub
End If
xRow = xRg.Rows.Count
Set xRg = xRg(xRow)
For I = xRow To 1 Step -1
Set xCell = xRg.偏移(I - xRow, 0)
Debug.Print xCell.地址
If xCell.Value = "" Then Range(xCell, xCell.偏移(-1, 0)).Merge
Next
End Sub
自动合并左侧空单元格
在这里,我们将插入VBA模块然后运行它以完成我们的任务。我们将展示一个简单的流程来说明如何使用VBA代码自动合并Excel中的空单元格。
步骤1
考虑一个带有类似下面图片中所示数据的Excel表格。
要打开VBA应用程序,右击工作表名称,然后选择“查看代码”,然后单击插入,选择模块,然后在文本框中输入Program 3,如下图所示。
示例3
子 mergeblankswithleft()
'由Nirmal更新
Dim xRg As Range
Dim xCell As Range
Dim xAddress As String
On Error Resume Next
xAddress = 应用程序.活动窗口.选定区域.地址
Set xRg = 应用程序.输入框("选择范围:" , "合并范围", xAddress, , , , , 8)
如果 xRg 为 Nothing 则退出子程序
对于每个 xCell 在 xRg 中
如果 xCell 值为 "",则 Range(xCell, xCell.Offset(0, -1)).Merge
Next
End Sub
步骤2
现在点击 F5 运行 VBA 代码,然后在弹出窗口中选择要合并的范围,然后点击“确定”。我们的最终输出将如下图所示。
结论
在本教程中,我们使用了一个简单的示例演示了如何在 Excel 中自动合并空单元格。