Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1428|回复: 3

[已解决]修改代码

[复制链接]
发表于 2014-7-10 10:35 | 显示全部楼层 |阅读模式
附件中已有代码是关于编号整合的。但是有缺陷
最佳答案
2014-7-10 11:30
Sub 编号整合()
Dim rng As Range, i As Long, temp As String, arr(1 To 10000)
[c:c].Clear
[c:c].NumberFormatLocal = "@"
arr(1) = [a1].Text
i = 1
For Each rng In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    If Right(arr(i), 5) + 1 = Left(rng.Text, 5) * 1 Then
       arr(i) = Left(arr(i), 5) & "-" & Right(rng.Text, 5)
    Else
       i = i + 1
       arr(i) = rng.Text
    End If
Next rng
[c1].Resize(i) = WorksheetFunction.Transpose(arr)
End Sub


是不是这样的?

编号整合.rar

51.73 KB, 下载次数: 11

发表于 2014-7-10 11:13 | 显示全部楼层
[问题是将相连的编号整合在一起。但是代码有个缺陷就是第一个与第二个单元格不能连在一起。
]

怎么理解“相连的编号整合在一起”?

看不懂!
回复

使用道具 举报

发表于 2014-7-10 11:30 | 显示全部楼层    本楼为最佳答案   
Sub 编号整合()
Dim rng As Range, i As Long, temp As String, arr(1 To 10000)
[c:c].Clear
[c:c].NumberFormatLocal = "@"
arr(1) = [a1].Text
i = 1
For Each rng In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    If Right(arr(i), 5) + 1 = Left(rng.Text, 5) * 1 Then
       arr(i) = Left(arr(i), 5) & "-" & Right(rng.Text, 5)
    Else
       i = i + 1
       arr(i) = rng.Text
    End If
Next rng
[c1].Resize(i) = WorksheetFunction.Transpose(arr)
End Sub


是不是这样的?
回复

使用道具 举报

 楼主| 发表于 2014-7-10 12:27 | 显示全部楼层
JLxiangwei 发表于 2014-7-10 11:30
Sub 编号整合()
Dim rng As Range, i As Long, temp As String, arr(1 To 10000)
[c:c].Clear

你改的代码符合我的要求,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-19 20:18 , Processed in 0.386790 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表