我想根据相邻单元格excel的值对字符串列表进行排序

时间:2016-06-23 21:52:38

标签: excel vba excel-vba

我在一列中有一个歌曲标题列表,旁边的列包含该歌曲播放的次数。我想在单独的列中订购播放计数,并在旁边显示歌曲的标题。这是我的excel表格的样子:

Title        | Play Count
------------ | -------------
title 1      |  2
title 2      |  1
title 3      |  
title 4      |  3

请注意,播放计数列中尚未播放的标题为空白。这就是我想要它的样子。

Title        | Play Count
------------ | -------------
title 4      |  3
title 1      |  2
title 2      |  1
title 3      |  

我希望此信息显示在新列中,以便原始列表和播放计数列保持不变。所以我不希望在数据透视表中完成此操作。优选地,它仅返回前20个左右的歌曲标题,但这不是必需的。这个名单大约有250首歌曲。

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

Option Explicit

Sub main()
    Dim dataCols As Range
    Dim columnsStrng As String

    columnsStrng = "C:D" '<--| change "C:D" with your actual "Title" and  "Play Count" columns indexes (they must be contiguous columns)
    With Worksheets("MySongs") '<--| change "MySongs" with your actual sheet name
        Set dataCols = .Range(columnsStrng).Resize(.Cells(.Rows.Count, .Range(columnsStrng).columns(1).Column).End(xlUp).row)
        With dataCols.Offset(, .UsedRange.columns.Count)
            .Value = dataCols.Value
            .Sort key1:=.columns(2), Header:=xlYes
        End With
    End With
End Sub