level 12
那你的数据有排序吗?会不会A列是AAABBBCCCAAA这样乱的,搞的这个A就合并n次了?
2021年07月07日 15点07分
2
不会的,数据到时候手动排一下。
2021年07月07日 18点07分
level 9
1、关闭警告弹窗
2、A列排序
3、for i=totalrow to 2 step -1从最后一行往上与上一行判断,如果A列相同则执行合并操作
2021年07月07日 23点07分
3
level 2
Sub MRange()
Dim RngA As Range, RngB As Range, RngC As Range
Dim Ws As Worksheet
Dim RowA, R1, Msg, RngATemp, RngBTemp, RngCTemp, RngMergeRow
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
Set Ws = ActiveSheet
RowA = Ws.Cells(Ws.Rows.Count, 1).End(xlUp).Row + 1
RngATemp = ""
RngBTemp = ""
RngCTemp = ""
For R1 = 1 To RowA
If Ws.Range("A" & R1).Text <> RngATemp And Ws.Range("A" & R1).Text <> "" Or R1 = RowA Then
If RngATemp <> "" Then
Ws.Range("A" & RngMergeRow & ":A" & R1 - 1).MergeCells = True
Ws.Range("B" & RngMergeRow & ":B" & R1 - 1).MergeCells = True
Ws.Range("C" & RngMergeRow & ":C" & R1 - 1).MergeCells = True
Ws.Range("B" & RngMergeRow) = RngBTemp
Ws.Range("C" & RngMergeRow) = RngCTemp
End If
RngMergeRow = R1
RngATemp = Ws.Range("A" & R1).Text
RngBTemp = Ws.Range("B" & R1).Text
RngCTemp = Ws.Range("C" & R1).Value
ElseIf Ws.Range("A" & R1).Text = RngATemp Then
RngBTemp = RngBTemp & Chr(10) & Ws.Range("B" & R1).Text
RngCTemp = RngCTemp + Ws.Range("C" & R1).Value
End If
Next R1
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayAlerts = True
If Msg <> "" Then MsgBox Msg
End Sub
2021年07月08日 01点07分
4
If Msg <> "" Then MsgBox Msg 这句没起作用,无视掉吧
2021年07月08日 01点07分
谢谢,我明天试一下。
2021年07月08日 16点07分