VBA根据数字排序

一列中有数据,数字跟字符串合并,数字在最前面,怎样根据前面的数字进行排列,如:1111/KD12/FD10/FD... 一列中有数据,数字跟字符串合并,数字在最前面,怎样根据前面的数字进行排列,如:
11
11/KD
12/FD
10/FD
展开
 我来答
zhaozq8272
2013-09-10 · TA获得超过117个赞
知道答主
回答量:179
采纳率:0%
帮助的人:152万
展开全部

我写了段VBA代码来实现。代码的原理也是使用了Z列作为辅助列的,先排序后清除了辅助列的内容。具体“原始数据”在哪一列和“使用哪一列”作为辅助列,可根据实际需要更改代码。

运行前:

运行后:

代码如下:

Sub 按照前2位数字排序()
Dim i As Integer
Dim x As String
xr = Cells(65535, 1).End(xlUp).Row
For i = 1 To xr
x = Left(Range("a" & i), 2)
Range("z" & i) = x
Columns("a:z").Select
    Selection.Sort Key1:=Range("z1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin, DataOption1:=xlSortTextAsNumbers
Next
Range("z:z").Clear
Range("a1").Select
End Sub

none_six
2013-09-10 · TA获得超过325个赞
知道小有建树答主
回答量:479
采纳率:100%
帮助的人:370万
展开全部
你可以加一个附助列,把前面的数字提取出来,然后按附助列排序。
追问
想法跟我一样,但是排了后还要删除,比较麻烦,有没有其他方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
palmers01
2013-09-10 · TA获得超过372个赞
知道小有建树答主
回答量:880
采纳率:0%
帮助的人:649万
展开全部
order by left(字段名,2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式