有没有大神帮忙看一下

朝歌丶 2019-01-28 02:02:42
对一个表进行排序,把行首单元格相同的行排到一起

For i = 2 To T_Sheet.UsedRange.Rows.Count
For j = i + 1 To T_Sheet.UsedRange.Rows.Count
If T_Sheet.Cells(i, 1) = T_Sheet.Cells(j, 1) Then
Rows(i & ":" & i).Select
Selection.Cut
Rows(j + 1 & ":" & j + 1).Select
Selection.Insert Shift:=xlDown
Range("R2").Select
Exit For
Else
End If
Next j
Next i
...全文
216 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
朝歌丶 2019-01-29
  • 打赏
  • 举报
回复
引用 1 楼 脆皮大雪糕 的回复:
excel里面不是有现成的排序操作么,操作一遍录制宏,然后稍作修改就是代码了。

ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A:A"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A:Z")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
谢谢,不知道宏还能录制
朝歌丶 2019-01-29
  • 打赏
  • 举报
回复
引用 3 楼 脆皮大雪糕 的回复:
[quote=引用 2 楼 朝歌丶 的回复:]
[quote=引用 1 楼 脆皮大雪糕 的回复:]
excel里面不是有现成的排序操作么,操作一遍录制宏,然后稍作修改就是代码了。

ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A:A"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A:Z")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
谢谢,不知道宏还能录制[/quote]

必须说明的是 2013下面这个操作录制出来的宏再执行一遍并不能达到相同效果,不知道是不是微软的bug,也有发现过其他的操作录制的宏效果也不一样。所以我说要稍作修改。我贴出来的代码就是修改过,在我这边测试通过的结果。[/quote]
我用的是2007可以正常用
脆皮大雪糕 2019-01-29
  • 打赏
  • 举报
回复
引用 2 楼 朝歌丶 的回复:
[quote=引用 1 楼 脆皮大雪糕 的回复:] excel里面不是有现成的排序操作么,操作一遍录制宏,然后稍作修改就是代码了。

    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A:A"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A:Z")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
谢谢,不知道宏还能录制[/quote] 必须说明的是 2013下面这个操作录制出来的宏再执行一遍并不能达到相同效果,不知道是不是微软的bug,也有发现过其他的操作录制的宏效果也不一样。所以我说要稍作修改。我贴出来的代码就是修改过,在我这边测试通过的结果。
脆皮大雪糕 2019-01-28
  • 打赏
  • 举报
回复
excel里面不是有现成的排序操作么,操作一遍录制宏,然后稍作修改就是代码了。

    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A:A"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A:Z")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧