全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
2217 1
2017-06-10
悬赏 10 个论坛币 未解决
想用VBA做一个小程序,按照每一个"::"前面的";"进行分列换行,但是貌似失败了。。EXCEL提示内容:下标越界。求大神解答。
由于我是真小白,代码全程都是边百度边写的,所以这个错误不知道怎么错了。。求大神解释纠正。
VBA编程错误
求改.zip
大小:(13.68 KB)

 马上下载

本附件包括:

  • 求改.xlsm


Sub 分开()
Dim arr, i&, cc(1 To 5000, 1 To 2), n&, o&, bb, p&, q&, m&
arr = Sheet2.[a1].CurrentRegion
For i = 4 To UBound(arr)
    Do While InStr(arr(i, 1), ";")
    m = m + 1
    q = Len(arr(i, 1))
    o = InStr(1, arr(i, 1), "::")
    If o > 0 Then
    o = InStr(o + Len("::"), arr(i, 1), "::")
    End If
    bb = Left(arr(i, 1), o)
    p = InStrRev(bb, ";")
    cc(m, 2) = Left(arr(i, 1), p)
    cc(m, 1) = arr(i, 2)
    arr(i, 1) = Right(arr(i, 1), q - p)
    Loop
Next
[a10:b20].ClearContents
[a10].Resize(m, 2) = cc
Range("A1").Select
End Sub
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-6-13 09:43:05
复制代码
把do...loop里改成上面的,其他不变。
请测试
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群