Excel VBA 代码功能实现

例如:通过ExcelVBA代码怎么把L072,L083-L087,L1110-L1113转化为:L072,L083,L084,L085,L086,L087,L1110,L... 例如:通过Excel VBA 代码怎么把 L072,L083-L087,L1110-L1113 转化为:
L072,L083,L084,L085,L086,L087,L1110,L1111,L1112,L1113
代码怎么实现??
展开
 我来答
太极健1969
2014-02-26 · TA获得超过9034个赞
知道大有可为答主
回答量:8668
采纳率:69%
帮助的人:3736万
展开全部

我用楼上老师的代码修改一下

Sub LKJLK()
    ss = Split([a1].Value, ",")
    For n = 0 To UBound(ss)
        If InStr(ss(n), "-") Then
            kk = Split(ss(n), "-")
            t = Left(kk(0), 1) '改用变量,你的原数据可以变化字母,直接引用,而不是固定L
            a = Mid(kk(0), 2)
            b = Mid(kk(1), 2)
            For x = a To b '循环只需要从a到b即可
                k = k & t & Format(x, "000") & ","
            Next
        Else
            k = ss(n) & ","
        End If
    Next
    [b1] = Mid(k, 1, Len(k) - 1)
End Sub

 请采用楼上老师,谢谢

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
【名臣】f2
2014-02-26 · TA获得超过1915个赞
知道大有可为答主
回答量:1594
采纳率:0%
帮助的人:1572万
展开全部
L072,L083-L087,L1110-L1113
这个内容是在一个单元,还是三个?
更多追问追答
追问
在一个单元内
追答
内容在A1单元格,结果返回在B1
Sub LKJLK()
    ss = Split([a1].Value, ",")
    For n = 0 To UBound(ss)
        If InStr(ss(n), "-") Then
            kk = Split(ss(n), "-")
            a = Mid(kk(0), 2)
            b = Mid(kk(1), 2)
            For x = 1 To b - a + 1
                k = k & "L" & Format(a, "000") & ","
                a = a + 1
            Next
        Else
            k = ss(n) & ","
        End If
    Next
    [b1] = Mid(k, 1, Len(k) - 1)
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式