在EXCEL的A1中有数据:“2-1,5-3,” 在A2中有数据:“4-2,8-7,5-4,”求VBA

将A1、A2设为参数并返回A1与A2的并集。本题的并集为:“2-1,4-2,5-3,5-4,8-7,”(返回是按这样的顺序排列)... 将A1、A2设为参数并返回A1与A2的并集。本题的并集为:“2-1,4-2,5-3,5-4,8-7,”(返回是按这样的顺序排列) 展开
 我来答
Ynzsvt
2012-06-16 · TA获得超过6677个赞
知道大有可为答主
回答量:1.5万
采纳率:40%
帮助的人:3175万
展开全部
Function sorts(a)
Dim b, i%, j%, temp, vi%, vj%
a = Replace(a, ",", ",")
b = Split(a, ",")
For i = 0 To UBound(b) - 2
For j = i + 1 To UBound(b) - 1
vi = Split(b(i), "-")(0) * 100 + Split(b(i), "-")(1)
vj = Split(b(j), "-")(0) * 100 + Split(b(j), "-")(1)
If vi > vj Then temp = b(i): b(i) = b(j): b(j) = temp
Next j
Next i
sorts = Join(b, ",")
End Function
使用:=sorts(a1 & a2)
2724421
2012-06-16 · TA获得超过2495个赞
知道大有可为答主
回答量:1554
采纳率:71%
帮助的人:716万
展开全部
工作表名称上点鼠标右键 选查看代码,粘贴下面代码到弹出窗口
Sub 合并排序()
Dim arr
istr = Range("A1") & Range("A2")
arr = Split(Left(istr, Len(istr) - 1), ",")

For i = 1 To UBound(arr) - 1
For ii = i + 1 To UBound(arr)
tempi = Left(arr(i), InStr(arr(i), "-") - 1)
tempii = Left(arr(ii), InStr(arr(ii), "-") - 1)
If tempi > tempii Then
temp = arr(i)
arr(i) = arr(ii)
arr(ii) = temp
End If
Next
Next
Range("A3") = Join(arr, ",") & ","
End Sub
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zzhilling
2012-06-16 · TA获得超过2704个赞
知道大有可为答主
回答量:3255
采纳率:45%
帮助的人:1273万
展开全部
先用VB 把所有数据并一列上
在用VB 执行 排序操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式