怎么用VBA对EXCEL内的数据排序

怎么用VBA对EXCEL内的数据排序,没有空格(我可以手动把空格全替换掉。),或者你能写个忽略空格的更好,然后按下图2排列出来。最好第一列是从10100到10199,第二... 怎么用VBA对EXCEL内的数据排序,没有空格(我可以手动把空格全替换掉。),或者你能写个忽略空格的更好,然后按下图2排列出来。
最好第一列是从10100到10199,第二列是10200到10300,以此类推,谢谢。
我没说过这些数一定是连续不断开的。。。。。。。。
展开
 我来答
百度网友066dc732e
2014-01-17 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5675
采纳率:33%
帮助的人:1867万
展开全部

既然已经知道数据是从10100~10199,10200~10299,10300~10399……,为何还用排序,直接在A1输入10100,B1输入10200,C1输入10300……,然后选中A1:C1,向下拉动填充序列即可(下拉后,右下角有个方块提示按钮,点击,弹出中点选“序列填充”即可)。

 

根据你的补充,如下两个办法:

假设数据源在sheet1表的A1:F100,则在sheet2表操作:

1、公式+定位法

在A1输入

=IF(COUNTIF(Sheet1!$A$1:$F$100,1&TEXT(COLUMN(),"00")&TEXT(ROW()-1."00")),1&TEXT(COLUMN(),"00")&TEXT(ROW()-1."00")),"")

然后右拉F1,再下拉到F99,选中,复制,就地选择性粘贴——数值,然后,选中A1:F99,按F5——定位条件——空值——确定,然后鼠标指向任意一个被选中的单元格——右键——删除——单元格上移——OK!

2、纯公式法

在sheet2表的【B1】输入

=TEXT(SMALL(Sheet1!$A$1:$F$100,SUMPRODUCT(N($A$1:A$100<>""))+ROW()),"[<"&10^4+COLUMN()/1%&"]#;;")

右拉到G1,再下拉到G100即可。

更多追问追答
追问
最后一个问题了,为什么大于12000以上的数就显示不了呢,我的数据范围从00000到14000,我只能保证一定是5位数。应该怎么修改公式。我的数据范围是从A1到W32.我问第二种方法。
追答

首先,必须确保sheet1表的是数值型数字格式(或常规)(文本型数字无法使用上述公式)

其次,如果计算区域是A1:W32,将上述公式中的sheet1!$a$1:$f$100修改为sheet1!$a$1:$w$32即可,其他地方不用修改。

最后,为了容错,可以增加一个判断函数,将公式变成:

=IF(SUMPRODUCT(N($A$1:A$100<>""))+ROW()<=COUNT(sheet1!$A$1:$W$32),TEXT(SMALL(Sheet1!$A$1:$W$32,SUMPRODUCT(N($A$1:A$100<>""))+ROW()),"[<"&10^4+COLUMN()/1%&"]#;;"),"")

即可,公式应下下啦填充,然后再右拉填充。

详见附件。

平阳虎01
高粉答主

2014-01-16 · 每个回答都超有意思的
知道大有可为答主
回答量:3.7万
采纳率:75%
帮助的人:4926万
展开全部
貌似不用VBA,直接用函数就可完成。试试下面的公式:
在首个单元格中输入
=IF(ROW(A1)>100,"",9999+COLUMN(A1)*100+ROW(A1))
右拖下拉填充。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
科技发烧友

2014-01-16 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2018
采纳率:0%
帮助的人:946万
展开全部
不知道你的数据有多少行,多少列,也不知道行号列号,怎么做?
追问
32行,22列
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式