尝试根据“主密钥”列

时间:2016-11-04 15:00:16

标签: excel vba excel-vba

所以这就是我的开始:

enter image description here

这就是我希望它完成后的样子:

enter image description here

我认为它需要做的是:

1。)浏览路线栏

2.)找到重复值

3.。)选择第一个重复路由值和最后一个

之间的所有行

4。)合并该范围内的所有重复单元格

5.重复,直到到达最后一行数据。

我的问题是我真的不太了解vba做我想做的事情,而且我没有找到一些已经做到这一点的代码。我会继续努力,但我欢迎您在本网站上精彩的人提供的任何帮助/见解。

1 个答案:

答案 0 :(得分:0)

所以我将路线移到第1列并让我的宏使用这段代码:

Sheets("Master").Select
With ActiveSheet
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
Dim KRng As Range, Kxcell As Range
Dim KxRows As Integer
Dim KeyRng As Range

Set KeyRng = Range("A4:A" & LastRow)
KeyRng.Select
'Application.ScreenUpdating = False
'Application.DisplayAlerts = False
KxRows = KeyRng.Rows.Count
        For Each KRng In KeyRng.Columns
            For c = 1 To KxRows - 1
                For d = c + 1 To KxRows
                    If KRng.Cells(c, 1).Value <> KRng.Cells(d, 1).Value Then
                Exit For
            End If
        Next
    KeyRng.Parent.Range(KRng.Cells(c, 1), KRng.Cells(d - 1, 1)).Select
    With Selection
    ActiveCell.Resize(d - c, 60).Select
    End With
    Call MergeSameCell
    KeyRng.Parent.Range(KRng.Cells(c, 1), KRng.Cells(d - 1, 1)).Select


    c = d - 1
Next

接着 Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

现在我的问题是,如何让它选择右边的60列,但跳过第8到12列?我会继续研究,看看我能想出什么,但我欢迎一个简单或优雅的答案。