第一步:先将Excel文件合并
合并之后出现多个Sheet页
第二步:点击开发工具,VB编辑器
第三步:写VB代码
Sub CombineCells()
Dim ws As Worksheet
Dim targetWs As Worksheet
Dim i As Integer, j As Integer
Set targetWs = ThisWorkbook.Sheets("Sheet1") '设置目标工作表
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> targetWs.Name Then '排除目标工作表
For i = 1 To ws.UsedRange.Rows.Count
For j = 1 To ws.UsedRange.Columns.Count
targetWs.Cells(i, j).Value = targetWs.Cells(i, j).Value & ws.Cells(i, j).Value
Next j
Next i
End If
Next ws
End Sub
可以在双层 for 循环里控制要写的区域,例如:如果我要合并的是从 G4 到 I140单元格的内容,则可以把 VB 代码修改为如下:
Sub CombineCells()
//Dim ws As Worksheet和Dim targetWs As Worksheet:声明了两个变量,分别用于代表工作簿中的工作表和目标工作表。
Dim ws As Worksheet
Dim targetWs As Worksheet
//Dim i As Integer, j As Integer:声明了两个整数变量,用于循环中的行和列索引。
Dim i As Integer, j As Integer
//设置目标工作表,将变量targetWs指向当前工作簿中名为 “目标工作表名称” 的工作表。
Set targetWs = ThisWorkbook.Sheets("Sheet1") '设置目标工作表
//遍历当前工作簿中的每一个工作表。
For Each ws In ThisWorkbook.Worksheets
//如果当前遍历到的工作表名称不等于目标工作表的名称,则执行以下操作,排除目标工作表自身不进行追加操作。
If ws.Name <> targetWs.Name Then '排除目标工作表
//两层循环分别遍历指定的行范围和列范围。
For i = 4 To 140
For j = 7 TO 9
//将当前工作表中对应位置的单元格内容追加到目标工作表对应位置的单元格内容后面
targetWs.Cells(i, j).Value = targetWs.Cells(i, j).Value & ws.Cells(i, j).Value
Next j
Next i
End If
Next ws
End Sub
第四步:将当前工作表中对应位置的单元格内容追加到目标工作表对应位置的单元格内容后面的时候添加换行
Sub CombineCells()
Dim ws As Worksheet
Dim targetWs As Worksheet
Dim i As Integer, j As Integer
Set targetWs = ThisWorkbook.Sheets("目标工作表名称") '设置目标工作表
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> targetWs.Name Then '排除目标工作表
For i = 4 To 140
For j = 7 To 9
If targetWs.Cells(i, j).Value <> "" Then
targetWs.Cells(i, j).Value = targetWs.Cells(i, j).Value & vbNewLine & ws.Cells(i, j).Value
Else
targetWs.Cells(i, j).Value = ws.Cells(i, j).Value
End If
Next j
Next i
End If
Next ws
End Sub
在这段代码中,添加了一个判断,如果目标工作表对应单元格已经有内容,就先添加一个换行符(vbNewLine)再追加当前工作表的内容;如果目标工作表对应单元格为空,则直接将当前工作表的内容赋值给目标工作表对应单元格。
第五步:如果想在单元格里特定字段前添加换行
假设你的数据在 I 列,从 I4 到 I140。
1、在另一个空白列(比如 J 列)的 J4 单元格中输入以下公式:
=IFERROR(SUBSTITUTE(I4,"巴彦淖尔",CHAR(10)&"巴彦淖尔"),I4)
这个公式的作用是,如果在使用SUBSTITUTE函数时出现错误,就直接返回原单元格内容I4,确保不会因为错误而丢失原有的内容。
2、将 J4 单元格的公式向下填充至 J140 单元格。可以将鼠标移至 J4 单元格右下角,当鼠标变为黑色十字时,双击鼠标左键快速填充。
3、选中 J4:J140 区域,右键点击选择 “设置单元格格式”,在 “对齐” 选项卡中勾选 “自动换行”。