Public Function mergePeicangOrderNo(strRange As String, intRange As Integer)
Dim rng As Range
Dim cellRange As Range
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim n As Integer
Dim sht As Worksheet
Dim arr As Variant
arr = Array(2, 3, 4, 5, 6, 7, 8)
Set sht = ActiveSheet
Set rng = sht.Range(strRange & intRange)
rng.Select
Set cellRange = sht.UsedRange
j = 1
For i = intRange To cellRange.Rows.Count - intRange + 1
If sht.Cells(i + 1, strRange) = rng Then
j = j + 1
rng.Resize(j, 1).Select
Else:
Application.DisplayAlerts = False
Selection.Merge '首先合并单元格
Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
For k = 0 To UBound(arr)
Set rng = rng.Offset(0, arr(k) - 1)
rng.Resize(j, 1).Select
Selection.Merge
Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
Set rng = rng.Offset(0, 1 - arr(k))
rng.Select
Next k
Application.DisplayAlerts = True
Set rng = sht.Range(strRange & i + 1) '设置单元格为最下面的下一个
rng.Select
j = 1 'j重新为第一个
End If
If ((i = cellRange.Rows.Count - intRange + 1) And (j > 1)) Then
Application.DisplayAlerts = False
Selection.Merge '首先合并单元格
Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
For k = 0 To UBound(arr)
Set rng = rng.Offset(0, arr(k) - 1)
rng.Resize(j, 1).Select
Selection.Merge
Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
Set rng = rng.Offset(0, 1 - arr(k))
rng.Select
Next k
End If
Next i
End Function
怎样根据某一列内容合并单元格——针对数据库的表头和表体
最新推荐文章于 2024-08-18 19:54:14 发布