|
H组 H15:hactnet
交下作业,请老师检查!
Sub 按钮2_单击()
Dim tt As String
Dim x As Integer, y As Integer
Application.DisplayAlerts = False
If IsNull(Range("a:a").MergeCells) Then '判断A列是否有合并单元格
For x = 2 To Range("a65536").End(xlUp).Row
tt = Cells(x, 1) '记录值
y = Cells(x, 1).MergeArea.Count '合并单元格计数
Cells(x, 1).UnMerge '解除合并
Range(Cells(x, 1), Cells(x + y - 1, 1)) = tt '解除合并的单元格取值
x = x + y - 1
Next x
Else
For x = Range("a65536").End(xlUp).Row To 2 Step -1 '倒循环防止多行相同合并时,首次合并后下次合并时出错
If Cells(x, 1) = Cells(x - 1, 1) Then '判断相邻单元格是否相等
Range(Cells(x - 1, 1), Cells(x, 1)).Merge '合并相邻单元格
End If
Next x
End If
Application.DisplayAlerts = True
End Sub
'*************************************
Sub 第二题方法2()
Dim x
Application.DisplayAlerts = False
If IsNull(Range("a:a").MergeCells) Then Range("a:a").UnMerge
For x = Range("a65536").End(xlUp).Row To 2 Step -1
If Cells(x, 1) = Cells(x - 1, 1) Then Range(Cells(x - 1, 1), Cells(x, 1)).Merge
Next x
Application.DisplayAlerts = True
End Sub
'************************************
Sub 第一题_按钮2_单击()
Dim rg As Range, x As Integer, r, y, 目标区列总数, 目标区开始列
Range("c1:f10") = ""
Set rg = Range("a1")
目标区列总数 = Application.CountIf(Range("A:A"), "A")
目标区开始列 = 3
r = Range("A:A").Find("A", LookAt:=xlWhole).Row '第一个A
For x = 2 To 目标区列总数
y = r
Set rg = Cells.Find("A", after:=rg.Offset(1, 0), MatchCase:=True, LookAt:=xlWhole, SearchDirection:=xlNext)
r = rg.Row
Cells(y, 1).Resize(r - y).Copy Cells(1, 目标区开始列)
目标区开始列 = 目标区开始列 + 1
Next x
Cells(r, 1).Resize(Range("A65536").End(xlUp).Row).Copy Cells(1, 目标区开始列)
End Sub
|
|